একটি ইনপুট হিসাবে একটি হেক্সাডেসিমেল সংখ্যার সাথে দেওয়া, কাজটি হল প্রদত্ত হেক্সাডেসিমেল সংখ্যাটিকে দশমিক সংখ্যায় রূপান্তর করা৷
কম্পিউটারে হেক্সাডেসিমেল সংখ্যাকে বেস 16 দিয়ে এবং দশমিক সংখ্যাকে বেস 10 দিয়ে উপস্থাপন করা হয় এবং 0 - 9 মান দিয়ে উপস্থাপিত হয় যেখানে হেক্সাডেসিমেল সংখ্যা 0 - 15 থেকে শুরু হয় যেখানে 10 কে A হিসাবে, 11 কে B হিসাবে, 12 কে C হিসাবে উপস্থাপন করা হয়, D হিসাবে 13, E হিসাবে 14 এবং F হিসাবে 15।
একটি হেক্সাডেসিমেল সংখ্যাকে দশমিক সংখ্যায় রূপান্তর করতে এই ধাপগুলি অনুসরণ করুন -
- আমরা ডান থেকে বাম থেকে শুরু করে একটি অবশিষ্টের মাধ্যমে অঙ্কগুলি বের করব এবং তারপর 0 থেকে শুরু হওয়া শক্তি দিয়ে এটিকে গুণ করব এবং (অঙ্কের সংখ্যা) - 1 পর্যন্ত 1 দ্বারা বৃদ্ধি করা হবে
- যেহেতু আমাদের হেক্সডেসিমেল থেকে বাইনারিতে রূপান্তর করতে হবে, পাওয়ারের ভিত্তি হবে 16 কারণ অক্টালের বেস 16 আছে।
- প্রদত্ত ইনপুটগুলির সংখ্যাগুলিকে ভিত্তি এবং শক্তি দিয়ে গুণ করুন এবং ফলাফলগুলি সংরক্ষণ করুন
- অন্তিম ফলাফল পেতে সমস্ত গুণিত মান যোগ করুন যা একটি দশমিক সংখ্যা হবে।
একটি হেক্সাডেসিমেল সংখ্যাকে দশমিক সংখ্যায় রূপান্তর করার সচিত্র উপস্থাপনা নীচে দেওয়া হল৷
উদাহরণ
Input-: ACD A(10) will be converted to a decimal number by -: 10 X 16^2 = 2560 C(12) will be converted to a decimal number by -: 12 X 16^1 = 192 D(13) will be converted to a decimal number by -: 13 X 16^0 = 13 Output-: total = 13 + 192 + 2560 = 2765
অ্যালগরিদম
Start Step 1-> declare function to convert hexadecimal to decimal int convert(char num[]) Set int len = strlen(num) Set int base = 1 Set int temp = 0 Loop For int i=len-1 and i>=0 and i— IF (num[i]>='0' && num[i]<='9') Set temp += (num[i] - 48)*base Set base = base * 16 End Else If (num[i]>='A' && num[i]<='F') Set temp += (num[i] - 55)*base Set base = base*16 End return temp step 2-> In main() declare char num[] = "3F456A" Call convert(num) Stop
উদাহরণ
#include<iostream> #include<string.h> using namespace std; //convert hexadecimal to decimal int convert(char num[]) { int len = strlen(num); int base = 1; int temp = 0; for (int i=len-1; i>=0; i--) { if (num[i]>='0' && num[i]<='9') { temp += (num[i] - 48)*base; base = base * 16; } else if (num[i]>='A' && num[i]<='F') { temp += (num[i] - 55)*base; base = base*16; } } return temp; } int main() { char num[] = "3F456A"; cout<<num<<" after converting to deciaml becomes : "<<convert(num)<<endl; return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে
3F456A after converting to deciaml becomes : 4146538