সমস্যা
সি প্রোগ্রামিং ল্যাঙ্গুয়েজে ফাংশন ব্যবহার করে কিভাবে একটি দশমিক সংখ্যাকে বাইনারি সংখ্যায় রূপান্তর করা যায়?
সমাধান
এই প্রোগ্রামে, আমরা একটি ফাংশনকে বাইনারিতে মেইন() কল করছি। বাইনারিতে বলা ফাংশন প্রকৃত রূপান্তর সম্পাদন করবে।
দশমিক সংখ্যাকে বাইনারি সংখ্যায় রূপান্তর করার জন্য আমরা যে লজিক ব্যবহার করছি সেটিকে ফাংশন বলা হয় -
while(dno != 0){ rem = dno % 2; bno = bno + rem * f; f = f * 10; dno = dno / 2; }
অবশেষে, এটি মূল প্রোগ্রামে বাইনারি নম্বর ফিরিয়ে দেয়।
উদাহরণ
একটি দশমিক সংখ্যাকে একটি বাইনারি সংখ্যা −
এ রূপান্তর করার জন্য C প্রোগ্রামটি নিম্নরূপ#include<stdio.h> long tobinary(int); int main(){ long bno; int dno; printf(" Enter any decimal number : "); scanf("%d",&dno); bno = tobinary(dno); printf("\n The Binary value is : %ld\n\n",bno); return 0; } long tobinary(int dno){ long bno=0,rem,f=1; while(dno != 0){ rem = dno % 2; bno = bno + rem * f; f = f * 10; dno = dno / 2; } return bno;; }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
Enter any decimal number: 12 The Binary value is: 1100
এখন, বাইনারি সংখ্যাকে দশমিক সংখ্যায় রূপান্তর করার চেষ্টা করুন।
উদাহরণ
বাইনারি সংখ্যাকে দশমিক সংখ্যা −
-এ রূপান্তর করার জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include #include <stdio.h> int todecimal(long bno); int main(){ long bno; int dno; printf("Enter a binary number: "); scanf("%ld", &bno); dno=todecimal(bno); printf("The decimal value is:%d\n",dno); return 0; } int todecimal(long bno){ int dno = 0, i = 0, rem; while (bno != 0) { rem = bno % 10; bno /= 10; dno += rem * pow(2, i); ++i; } return dno; }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
Enter a binary number: 10011 The decimal value is:19