সমস্যা
কিভাবে সি প্রোগ্রামিং ভাষা ব্যবহার করে হেক্সাডেসিমেল মানকে পূর্ণসংখ্যা মানতে রূপান্তর করবেন?
ধারণাটি ব্যাখ্যা করুন।
সমাধান
হেক্সাডেসিমেল মানগুলি 16টি চিহ্ন 1 থেকে 9 এবং A থেকে Fতে উপস্থাপন করে। এখানে A থেকে F দশমিকের সমতুল্য 10 থেকে 15।
উদাহরণ
নিম্নলিখিত ফাংশনগুলি ব্যবহার করে হেক্সাডেসিমেলকে পূর্ণসংখ্যাতে রূপান্তর করার জন্য C প্রোগ্রাম রয়েছে −
#include#include #include int hextodc(char *hex){ int y =0; int dec =0; int x, i; for(i =strlen(hex) - 1; i>=0; --i)//{ if(hex[i]>='0'&&hex[i]<='9'){ x =hex[i ] - '0'; } else{ x =hex[i] - 'A' + 10; } dec =dec + x * pow(16 , y);// হেক্সাডেসিমেলকে পূর্ণসংখ্যা মান ++y রূপান্তর করা হচ্ছে; } রিটার্ন dec;}int main(){ char hex[100]; printf("হেক্সাডেসিমেল লিখুন:"); scanf("%s", হেক্স); printf("\nদশমিক:%d", hextodc(hex)); রিটার্ন 0;
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
<পূর্ব>1. Hexadecimal লিখুন:A Decimal:10 2. Enter Hexadecimal:A12 Decimal:2578ব্যাখ্যা
ডান-থেকে-বাম
থেকে হেক্সের সমস্ত অক্ষর স্ক্যান করুনস্ক্যান করা অক্ষর A.
হতে দিনA কে উপযুক্ত দশমিক আকারে রূপান্তর করুন এবং এটিকে x এ সংরক্ষণ করুন।
dec =dec + x * 16y
y=y + 1।
দশমিক রিটার্ন।
আমরা বাম-থেকে-ডান থেকে হেক্সাডেসিমেল মান স্ক্যান করতে পারি তবে, আমাদের অবশ্যই y শুরু করতে হবে y =N – 1 হিসাবে এবং প্রতিটি পুনরাবৃত্তিতে y হ্রাস করতে হবে। N হল হেক্সাডেসিমেলের দৈর্ঘ্য।