Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी प्रोग्राम में हेक्साडेसिमल को ऑक्टल में बदलने का कार्यक्रम

हमें स्ट्रिंग के रूप में एक हेक्साडेसिमल संख्या दी जाती है; कार्य इसे ऑक्टल में बदलना है। एक हेक्साडेसिमल संख्या को अष्टाधारी में बदलने के लिए, हमें -

. करना होगा
  • हेक्साडेसिमल संख्या के बराबर बाइनरी खोजें।
  • बाइनरी नंबर को ऑक्टल में बदलें।

हेक्साडेसिमल संख्याएं क्या हैं

हेक्साडेसिमल संख्याएँ वे संख्याएँ होती हैं जो 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

  1. पायथन प्रोग्राम में दशमलव को बाइनरी नंबर में बदलें

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक दशमलव संख्या दी गई है, हमें इसे इसके बाइनरी समकक्ष में बदलने की जरूरत है। दी गई समस्या को हल करने के लिए दो दृष्टिकोण हैं। आइए उन्हें एक-एक करके देखें- पुनरावर्ती दृष्टिकोण उदाहरण def DecimalToBinary(num): &

  1. फ्लोटिंग को बाइनरी में बदलने के लिए पायथन प्रोग्राम

    फ़्लोटिंग पॉइंट मान को देखते हुए और दशमलव स्थानों की संख्या को इनपुट करते हुए, हमारा काम इसे बाइनरी रूप में बदलना है। पहले हम फ़्लोटिंग पॉइंट मान से पूर्णांक भाग लेते हैं और इसे बाइनरी में परिवर्तित करते हैं फिर भिन्नात्मक भाग लेते हैं और इसे बाइनरी रूप में परिवर्तित करते हैं और अंत में दोनों को मि

  1. पायथन का उपयोग करके दशमलव को बाइनरी, ऑक्टल और हेक्साडेसिमल में कैसे बदलें?

    पायथन दशमलव को बाइनरी, ऑक्टल और हेक्साडेसिमल में बदलने के लिए सरल कार्य प्रदान करता है। ये कार्य हैं - Binary: bin() Octal: oct() Hexadecimal: hex() उदाहरण आप इन कार्यों का उपयोग इस प्रकार कर सकते हैं कि संबंधित प्रतिनिधित्व प्राप्त करें - decimal = 27 print(bin(decimal),"in binary.") pri