एक इनपुट के रूप में एक दशमलव संख्या के साथ दिया गया, कार्य दिए गए दशमलव संख्या को एक हेक्साडेसिमल संख्या में बदलना है।
कंप्यूटर में हेक्साडेसिमल संख्या को आधार 16 के साथ दर्शाया जाता है और दशमलव संख्या को आधार 10 के साथ दर्शाया जाता है और 0 - 9 के मूल्यों के साथ दर्शाया जाता है जबकि हेक्साडेसिमल संख्या में 0 - 15 से शुरू होने वाले अंक होते हैं जिसमें 10 को ए के रूप में, 11 को बी के रूप में, 12 को सी के रूप में दर्शाया जाता है। 13 को D, 14 को E और 15 को F.
दशमलव संख्या को हेक्साडेसिमल संख्या में बदलने के लिए दिए गए चरणों का पालन करें -
- सबसे पहले दी गई संख्या को रूपांतरण संख्या के आधार मान से विभाजित करें उदा। 6789 को 16 से विभाजित करना क्योंकि हमें 6789 को एक हेक्साडेसिमल संख्या में बदलना है, जिसका आधार 16 है और फिर एक भागफल प्राप्त करके उसे संग्रहीत करना है। यदि शेष 0-9 के बीच है, तो उन्हें वैसे ही स्टोर करें और यदि शेष 10-15 के बीच है तो उन्हें उनके चरित्र रूप में ए - एफ के रूप में परिवर्तित करें
- प्राप्त भागफल को हेक्साडेसिमल संख्या के आधार मान से विभाजित करें जो कि 16 है और बिट्स को संग्रहीत करते रहें।
- संग्रहीत बिट्स पर राइट शिफ्ट करते रहें
- इस चरण को तब तक दोहराएं जब तक कि शेष अविभाज्य न रह जाए
एक दशमलव संख्या को एक हेक्साडेसिमल संख्या में बदलने का सचित्र निरूपण नीचे दिया गया है।
उदाहरण
Input-: 6789 Divide the 6789 with base 16 : 6789 / 16 = 5 (remainder) 424(quotient) Divide quotient with base: 424 / 16 = 8(remainder) 26(quotient) Divide quotient with base: 26 / 16 = 10(remainder) 1(quotient) Now reverse the remainder obtained for final hexadecimal value. Output-: 1A85
एल्गोरिदम
Start Step 1-> Declare function to convert decimal to hexadecimal void convert(int num) declare char arr[100] set int i = 0 Loop While(num!=0) Set int temp = 0 Set temp = num % 16 IF temp < 10 Set arr[i] = temp + 48 Increment i++ End Else Set arr[i] = temp + 55 Increment i++ End Set num = num/16 End Loop For int j=i-1 j>=0 j— Print arr[j] Step 2-> In main() Set int num = 6789 Call convert(num) Stop
उदाहरण
#include<iostream> using namespace std; //convert decimal to hexadecimal void convert(int num) { char arr[100]; int i = 0; while(num!=0) { int temp = 0; temp = num % 16; if(temp < 10) { arr[i] = temp + 48; i++; } else { arr[i] = temp + 55; i++; } num = num/16; } for(int j=i-1; j>=0; j--) cout << arr[j]; } int main() { int num = 6789; cout<<num<< " converted to hexadeciaml: "; convert(num); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा
6789 converted to hexadeciaml: 1A85