একটি ইনপুট হিসাবে একটি হেক্সাডেসিমেল সংখ্যার সাথে দেওয়া, কাজটি হল প্রদত্ত হেক্সাডেসিমেল সংখ্যাটিকে দশমিক সংখ্যায় রূপান্তর করা৷
কম্পিউটারে হেক্সাডেসিমেল সংখ্যাকে বেস 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