কম্পিউটার টিউটোরিয়াল

C ভাষা ব্যবহার করে হেক্সাডেসিমাল থেকে ইন্টিজার ভ্যালু রূপান্তর


সমস্যা

C প্রোগ্রামিং ভাষা ব্যবহার করে হেক্সাডেসিমাল ভ্যালুকে ইন্টিজার ভ্যালুতে রূপান্তর করার পদ্ধতি। কনসেপ্টটি ব্যাখ্যা করুন।

সমাধান

হেক্সাডেসিমাল ভ্যালু ১৬ সিম্বলে প্রকাশ করা হয় ১ থেকে ৯ এবং A থেকে F। এখানে A থেকে F-এর দশমিক সমতুল্য ১০ থেকে ১৫।

উদাহরণ

ফাংশন ব্যবহার করে হেক্সাডেসিমাল থেকে ইন্টিজার রূপান্তরের 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;    }    return dec; } int main(){    char hex[100];    printf("হেক্সাডেসিমাল লিখুন: ");    scanf("%s", hex);    printf("\nডেসিমাল: %d", hextodc(hex));    return 0; }

আউটপুট

উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:

১. হেক্সাডেসিমাল লিখুন: A    ডেসিমাল: ১০ ২. হেক্সাডেসিমাল লিখুন: A12     ডেসিমাল: ২৫৭৮

ব্যাখ্যা

হেক্স-এর সব ক্যারেক্টার راয়ট-টু-লেফট স্ক্যান করুন।

স্ক্যান করা ক্যারেক্টার হোক A।

A কে উপযুক্ত দশমিক ফর্মে রূপান্তর করে x-এ সংরক্ষণ করুন।

dec = dec + x * 16^y

y = y + 1।

দশমিক রিটার্ন করুন।

আমরা লেফট-টু-রাইট থেকেও হেক্সাডেসিমাল স্ক্যান করতে পারি কিন্তু, y = N - ১ হিসেবে ইনিশিয়ালাইজ করতে হবে এবং প্রতিটি ইটারেশনে y ডিক্রিমেন্ট করতে হবে। N হল হেক্সাডেসিমালের দৈর্ঘ্য।

  1. C++-এ ডেসিমেল থেকে হেক্সাডেসিমেল কনভার্সন প্রোগ্রাম

  2. C#-এ 8-বিট সাইনড ইন্টিজার (SByte) থেকে Decimal-এ ইমপ্লিসিট কনভারশন

  3. সি শার্পে ৬৪-বিট সাইনড ইন্টিজার (long) থেকে Decimal-এ নিহিত রূপান্তর

  4. পাইথনে ইন্টিজারকে হেক্সাডেসিমাল স্ট্রিংএ কনভার্ট কীভাবে করবেন?