हमें स्ट्रिंग के रूप में एक हेक्साडेसिमल संख्या दी जाती है; कार्य इसे ऑक्टल में बदलना है। एक हेक्साडेसिमल संख्या को अष्टाधारी में बदलने के लिए, हमें -
. करना होगा- हेक्साडेसिमल संख्या के बराबर बाइनरी खोजें।
- बाइनरी नंबर को ऑक्टल में बदलें।
हेक्साडेसिमल संख्याएं क्या हैं
हेक्साडेसिमल संख्याएँ वे संख्याएँ होती हैं जो 16 के आधार की होती हैं, संख्याएँ 0-9 से भिन्न होती हैं और 10 से आगे की संख्याओं को A के रूप में दर्शाया जाता है, जो 10 का प्रतिनिधित्व करती है, 11 के लिए B, 12 के लिए C, 13 के लिए D, 14 के लिए E और F 15.
. के लिएहेक्साडेसिमल नंबर को बाइनरी नंबर में बदलने के लिए हर नंबर को उसके 4 बिट्स के बाइनरी समकक्ष में बदल दिया जाता है और उसके बाद इन नंबरों को एक समान बाइनरी नंबर बनाने के लिए जोड़ दिया जाता है।
ऑक्टल नंबर क्या होते हैं
कंप्यूटर में ऑक्टल नंबरों को आधार 8 से दर्शाया जाता है, जो 0-7 के रूप में होते हैं ऑक्टल नंबर तीन बाइनरी नंबर या तीन बाइनरी अंकों के समूह द्वारा बनाए जाते हैं।
हमें क्या करना है
जैसे हमारे पास एक हेक्साडेसिमल संख्या 1A6 है, इसलिए इसका अर्थ है 1, 10 और 6 अब हेक्साडेसिमल से ऑक्टल के लिए पहले हमें हेक्साडेसिमल संख्या के बाइनरी समकक्ष को खोजना होगा, अर्थात,
तो, 1A6 का बाइनरी =0001 1010 0110
अब हेक्साडेसिमल संख्या के बाइनरी को खोजने के बाद अब अगला काम बाइनरी नंबर का ऑक्टल ढूंढना है।
इससे पहले हम बाइनरी नंबर को तीन में ग्रुप करेंगे। 3 में समूहबद्ध करने के बाद हमें 000 110 100 110
. मिलेगाअष्टक प्रतिनिधित्व किसका होगा -
तो हेक्साडेसिमल संख्या 1A6 का अष्टाधारी प्रतिनिधित्व है - 646
उदाहरण
Input: 1A6 Output: Octal Value = 646 Explanation: Input: 1AA Output: 652
दी गई समस्या को हल करने के लिए हम जिस दृष्टिकोण का उपयोग करेंगे -
- इनपुट लेना और इसे एक स्ट्रिंग के रूप में संग्रहीत करना।
- नीचे दिए गए तरीके का पालन करके हेक्साडेसिमल संख्या या व्यंजक को बाइनरी में बदलें -
- हेक्साडेसिमल के सभी 16 मामलों की जांच उनके संबंधित बाइनरी प्रतिनिधित्व को जोड़कर करें।
- परिणाम लौटाएं।
- बाइनरी नंबर को ऑक्टल नंबर में बदलें, निम्न चरणों का पालन करें -
- बाइनरी नंबर के सभी संभावित मामलों की ऑक्टल से तुलना करके 3 स्थान लें।
- अष्टक का मान सेट करें =(वैल * स्थान) + अष्टक;
- बाइनरी संख्या को 1000 से विभाजित करें
- स्थान *=10
- परिणाम लौटाएं।
एल्गोरिदम
Start Step 1-> In function long long int hexa_binary(char hex[]) Declare variables binary, place Declare and initialize i = 0, rem, val Initialize t n = strlen(hex) Initialize binary = 0ll and place = 0ll Loop For i = 0 and hex[i] != '\0' and i++ { binary = binary * place; switch (hex[i]) { case '0': binary += 0 case '1': binary += 1 case '2': binary += 10 case '3': binary += 11 case '4': binary += 100 case '5': binary += 101 case '6': binary += 110 case '7': binary += 111 case '8': binary += 1000 case '9': binary += 1001 case 'a': case 'A': binary += 1010 case 'b': case 'B': binary += 1011 case 'c': case 'C': binary += 1100 case 'd': case 'D': binary += 1101; break; case 'e': case 'E': binary += 1110; break; case 'f': case 'F': binary += 1111; break; default: printf("Invalid hexadecimal input."); } place = 10000; } return binary; } long long int binary_oct(long long binary) { long long int octal, place; int i = 0, rem, val; octal = 0ll; place = 0ll; place = 1; while (binary > 0) { rem = binary % 1000; switch (rem) { case 0: val = 0; break; case 1: val = 1; break; case 10: val = 2; break; case 11: val = 3; break; case 100: val = 4; break; case 101: val = 5; break; case 110: val = 6; break; case 111: val = 7; break; } octal = (val * place) + octal; binary /= 1000; place *= 10; } return octal; } long long int hexa_oct(char hex[]) { long long int octal, binary; // convert HexaDecimal to Binary binary = hexa_binary(hex); // convert Binary to Octal octal = binary_oct(binary); return octal; } int main() { char hex[20] = "1a99"; printf("Octal Value = %lld", hexa_oct(hex)); return 0; }
उदाहरण
#include <stdio.h> #include <string.h> #include <math.h> //To convert hex to binary first long long int hexa_binary(char hex[]) { long long int binary, place; int i = 0, rem, val; int n = strlen(hex); binary = 0ll; place = 0ll; for (i = 0; hex[i] != '\0'; i++) { binary = binary * place; switch (hex[i]) { case '0': binary += 0; break; case '1': binary += 1; break; case '2': binary += 10; break; case '3': binary += 11; break; case '4': binary += 100; break; case '5': binary += 101; break; case '6': binary += 110; break; case '7': binary += 111; break; case '8': binary += 1000; break; case '9': binary += 1001; break; case 'a': case 'A': binary += 1010; break; case 'b': case 'B': binary += 1011; break; case 'c': case 'C': binary += 1100; break; case 'd': case 'D': binary += 1101; break; case 'e': case 'E': binary += 1110; break; case 'f': case 'F': binary += 1111; break; default: printf("Invalid hexadecimal input."); } place = 10000; } return binary; } //To convert binary to octal long long int binary_oct(long long binary) { long long int octal, place; int i = 0, rem, val; octal = 0ll; place = 0ll; place = 1; // giving all binary numbers for octal conversion while (binary > 0) { rem = binary % 1000; switch (rem) { case 0: val = 0; break; case 1: val = 1; break; case 10: val = 2; break; case 11: val = 3; break; case 100: val = 4; break; case 101: val = 5; break; case 110: val = 6; break; case 111: val = 7; break; } octal = (val * place) + octal; binary /= 1000; place *= 10; } return octal; } // to convert the hexadecimal number to octal long long int hexa_oct(char hex[]) { long long int octal, binary; // convert HexaDecimal to Binary binary = hexa_binary(hex); // convert Binary to Octal octal = binary_oct(binary); return octal; } //main function int main() { char hex[20] = "5CD"; printf("Octal Value = %lld", hexa_oct(hex)); return 0; }
आउटपुट
Octal Value = 2715