C ++程序将八进制数转换为十进制,反之亦然

在计算机系统中,八进制数以八进制数表示,而十进制数以十进制数表示。八进制数以8为底,十进制数以10为底。

十进制数及其对应的八进制数的示例如下。

小数八进制数
1012
70106
2531
1620

将八进制数转换为十进制并将十进制数转换为八进制的程序如下-

示例

#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将十进制数转换为八进制,而函数OctalToDecimal将八进制数转换为十进制。

在函数DecimalToOctal中,最初将变量octalNum初始化为零。变量placeValue表示数字在数字中的位置。使用while循环可找到octalNum的值。

对于while循环的每次迭代,十进制Num除以8,其余乘以placeValue。这被添加到octalNum的先前值。另外,decimalNum除以8,然后商回存储。placeValue乘以10。

演示此代码段如下。

while (decimalNum != 0) {

   octalNum += (decimalNum % 8) * placeValue;

   decimalNum /= 8;

   placeValue *= 10;

}

获得八进制值(即octalNum)后,将显示该值。这在下面给出-

cout<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl;

在函数OctalToDecimal中,在while循环的每次迭代中,octalNum除以8,其余乘以8乘幂。这被添加到以前的decimalNum值。幂增加1,而octalNum除以10。这证明如下。

while(octalNum != 0) {

   decimalNum += (octalNum%10) * pow(8,power);

   ++power;

   octalNum/=10;

}

找到decimalNum的值后,将显示它。如下所示。

cout<<"Decimal form of octal number "<<oNo<<" is "<<decimalNum<<endl;

main()函数仅包含对函数的调用,DecimalToOctal()OctalToDecimal()带有所需的值。下面的代码片段对此进行了演示。

DecimalToOctal(20);

OctalToDecimal(32);

以上是 C ++程序将八进制数转换为十进制,反之亦然 的全部内容, 来源链接: utcz.com/z/331429.html

回到顶部