एक कंप्यूटर सिस्टम में, ऑक्टल संख्या को ऑक्टल अंक प्रणाली में व्यक्त किया जाता है जबकि दशमलव संख्या दशमलव संख्या प्रणाली में होती है। अष्टक संख्या आधार 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<<"Octal form of decimal number "<<dNo<<" is "<<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<<"Decimal form of octal number "<<oNo<<" is "<<decimalNum<<endl; } int main() { DecimalToOctal(20); OctalToDecimal(32); return 0; }
आउटपुट
Octal form of decimal number 20 is 24 Decimal form of octal number 32 is 26
उपरोक्त कार्यक्रम में, दशमलव संख्याओं को ऑक्टल में बदलने के लिए दशमलव टूऑक्टल फ़ंक्शन और ऑक्टल टूडेसिमल फ़ंक्शन ऑक्टल संख्याओं को दशमलव में परिवर्तित करता है।
DecimalToOctal फ़ंक्शन में, प्रारंभ में वेरिएबल ऑक्टलनम को शून्य से प्रारंभ किया जाता है। वेरिएबल प्लेसवैल्यू संख्या में अंक के स्थान को दर्शाता है। ऑक्टलनम का मान थोड़ी देर के लूप का उपयोग करके पाया जाता है।
जबकि लूप के प्रत्येक पुनरावृत्ति के लिए, दशमलव संख्या को 8 से विभाजित किया जाता है और शेष को प्लेसवैल्यू से गुणा किया जाता है। इसे OctalNum के पिछले मान में जोड़ा जाता है। इसके अलावा दशमलव संख्या को 8 से विभाजित किया जाता है और भागफल को वापस संग्रहीत किया जाता है। प्लेसवैल्यू को 10 से गुणा किया जाता है।
एक कोड स्निपेट जो इसे प्रदर्शित करता है वह इस प्रकार है।
while (decimalNum != 0) { octalNum += (decimalNum % 8) * placeValue; decimalNum /= 8; placeValue *= 10; }
ऑक्टल वैल्यू यानी ऑक्टलनम के ओवेट होने के बाद, इसे प्रदर्शित किया जाता है। यह नीचे दिया गया है -
cout<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl;
फंक्शन OctalToDecimal में, जबकि लूप के प्रत्येक पुनरावृत्ति में OctalNum को 8 से विभाजित किया जाता है और शेष को 8 से गुणा करके घात किया जाता है। इसे दशमलव संख्या के पिछले मान में जोड़ा जाता है। शक्ति को 1 से बढ़ाया जाता है और अष्टक को 10 से विभाजित किया जाता है। इसे निम्नानुसार प्रदर्शित किया जाता है।
while(octalNum != 0) { decimalNum += (octalNum%10) * pow(8,power); ++power; octalNum/=10; }
दशमलव संख्या का मान मिलने के बाद, यह प्रदर्शित होता है। इसे इस प्रकार देखा जाता है।
cout<<"Decimal form of octal number "<<oNo<<" is "<<decimalNum<<endl;
मुख्य () फ़ंक्शन में केवल आवश्यक मानों के साथ DecimalToOctal () और OctalToDecimal () में फ़ंक्शन कॉल होते हैं। यह निम्नलिखित कोड स्निपेट द्वारा प्रदर्शित किया जाता है।
DecimalToOctal(20); OctalToDecimal(32);