সমস্যা
C প্রোগ্রামিং ভাষায় ফাংশন ব্যবহার করে একটি ডেসিমাল সংখ্যাকে বাইনারি সংখ্যাতে রূপান্তর করার পদ্ধতি।
সমাধান
এই প্রোগ্রামে, আমরা main()-এ tobinary ফাংশন কল করছি। কলড ফাংশন tobinary আসল রূপান্তর করবে।
ডেসিমাল সংখ্যাকে বাইনারি সংখ্যাতে রূপান্তর করার কলড ফাংশনে ব্যবহৃত লজিক নিম্নরূপ:
while(dno != 0){ rem = dno % 2; bno = bno + rem * f; f = f * 10; dno = dno / 2; }শেষে, এটি বাইনারি সংখ্যাটি মেইন প্রোগ্রামে রিটার্ন করে।
উদাহরণ
একটি ডেসিমাল সংখ্যাকে বাইনারি সংখ্যাতে রূপান্তর করার C প্রোগ্রাম নিচে দেওয়া হল:
#includelong tobinary(int); int main(){ long bno; int dno; printf(" যেকোনো ডেসিমাল সংখ্যা লিখুন: "); scanf("%d", &dno); bno = tobinary(dno); printf("\n বাইনারি মান হল: %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; }
আউটপুট
উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:
যেকোনো ডেসিমাল সংখ্যা লিখুন: 12 বাইনারি মান হল: 1100
এখন, বাইনারি সংখ্যাকে ডেসিমাল সংখ্যাতে রূপান্তর করার চেষ্টা করুন।
উদাহরণ
বাইনারি সংখ্যাকে ডেসিমাল সংখ্যাতে রূপান্তর করার C প্রোগ্রাম নিচে দেওয়া হল:
#includeint todecimal(long bno); int main(){ long bno; int dno; printf("একটি বাইনারি সংখ্যা লিখুন: "); scanf("%ld", &bno); dno = todecimal(bno); printf("ডেসিমাল মান হল: %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; }
আউটপুট
উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:
একটি বাইনারি সংখ্যা লিখুন: 10011 ডেসিমাল মান হল: 19