कंप्यूटर सिस्टम में, अष्टाधारी संख्या अष्टाधारी संख्या प्रणाली में व्यक्त की जाती है जबकि दशमलव संख्या दशमलव संख्या प्रणाली में होती है। अष्टाधारी संख्या आधार 8 में होती है जबकि दशमलव संख्या आधार 10 में होती है।
दशमलव संख्याओं और उनकी संबंधित अष्टाधारी संख्याओं के उदाहरण निम्नलिखित हैं।
| दशमलव संख्या | अष्टाधारी संख्या |
|---|---|
| 10 | 12 |
| 70 | 106 |
| 25 | 31 |
| 16 | 20 |
अष्टाधारी संख्याओं को दशमलव में और दशमलव संख्याओं को अष्टाधारी में बदलने का एक प्रोग्राम निम्नलिखित है:
उदाहरण
#include <iostream> #include <cmath> using namespace std; void DecimalToOctal(int decimalNum) { int octalNum = 0, placeValue = 1; int dNo = decimalNum; while (decimalNum != 0) { octalNum += (decimalNum % 8) * placeValue; decimalNum /= 8; placeValue *= 10; } cout<<"दशमलव संख्या "<<dNo<<" का अष्टाधारी रूप है "<<octalNum<<endl; } void OctalToDecimal(int octalNum) { int decimalNum = 0, power = 0; int oNo = octalNum; while(octalNum != 0) { decimalNum += (octalNum%10) * pow(8,power); ++power; octalNum/=10; } cout<<"अष्टाधारी संख्या "<<oNo<<" का दशमलव रूप है "<<decimalNum<<endl; } int main() { DecimalToOctal(20); OctalToDecimal(32); return 0; } आउटपुट
दशमलव संख्या 20 का अष्टाधारी रूप है 24 अष्टाधारी संख्या 32 का दशमलव रूप है 26
उपरोक्त प्रोग्राम में, DecimalToOctal फ़ंक्शन दशमलव संख्याओं को अष्टाधारी में बदलता है और OctalToDecimal फ़ंक्शन अष्टाधारी संख्याओं को दशमलव में बदलता है।
DecimalToOctal फ़ंक्शन में, प्रारंभ में वेरिएबल octalNum को शून्य से आरंभ किया जाता है। वेरिएबल placeValue संख्या में अंक के स्थान को दर्शाता है। octalNum का मान व्हाइल लूप का उपयोग करके पाया जाता है।
व्हाइल लूप के प्रत्येक पुनरावृत्ति के लिए, decimalNum को 8 से विभाजित किया जाता है और शेषफल को placeValue से गुणा किया जाता है। इसे octalNum के पिछले मान में जोड़ा जाता है। साथ ही decimalNum को 8 से विभाजित किया जाता है और भागफल को वापस संग्रहीत किया जाता है। placeValue को 10 से गुणा किया जाता है।
इसे प्रदर्शित करने वाला एक कोड स्निपेट निम्नानुसार है।
while (decimalNum != 0) { octalNum += (decimalNum % 8) * placeValue; decimalNum /= 8; placeValue *= 10; } अष्टाधारी मान यानी octalNum प्राप्त होने के बाद, इसे प्रदर्शित किया जाता है। यह नीचे दिया गया है:
cout<<"दशमलव संख्या "<<dNo<<" का अष्टाधारी रूप है "<<octalNum<<endl;
OctalToDecimal फ़ंक्शन में, व्हाइल लूप के प्रत्येक पुनरावृत्ति में octalNum को 8 से विभाजित किया जाता है और शेषफल को 8 की घात power से गुणा किया जाता है। इसे decimalNum के पिछले मान में जोड़ा जाता है। Power को 1 से बढ़ाया जाता है और octalNum को 10 से विभाजित किया जाता है। यह निम्नानुसार प्रदर्शित होता है।
while(octalNum != 0) { decimalNum += (octalNum%10) * pow(8,power); ++power; octalNum/=10; } decimalNum का मान मिलने के बाद, इसे प्रदर्शित किया जाता है। यह निम्नानुसार देखा जाता है।
cout<<"अष्टाधारी संख्या "<<oNo<<" का दशमलव रूप है "<<decimalNum<<endl;
main() फ़ंक्शन में केवल आवश्यक मानों के साथ DecimalToOctal() और OctalToDecimal() फ़ंक्शन कॉल होते हैं। यह निम्नलिखित कोड स्निपेट द्वारा प्रदर्शित होता है।
DecimalToOctal(20); OctalToDecimal(32);