एक इनपुट के रूप में एक हेक्साडेसिमल संख्या के साथ दिया गया, कार्य दिए गए हेक्साडेसिमल संख्या को दशमलव संख्या में परिवर्तित करना है।
कंप्यूटर में हेक्साडेसिमल संख्या को आधार 16 के साथ दर्शाया जाता है और दशमलव संख्या को आधार 10 के साथ दर्शाया जाता है और 0 - 9 के मूल्यों के साथ दर्शाया जाता है जबकि हेक्साडेसिमल संख्या में 0 - 15 से शुरू होने वाले अंक होते हैं जिसमें 10 को ए के रूप में, 11 को बी के रूप में, 12 को सी के रूप में दर्शाया जाता है। 13 डी के रूप में, 14 ई के रूप में और 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