📌  相关文章
📜  C++程序将八进制数转换为十进制,反之亦然(1)

📅  最后修改于: 2023-12-03 15:14:04.634000             🧑  作者: Mango

八进制数与十进制数的转换

在计算机科学领域中,常常涉及到八进制数与十进制数之间的转换。本文将介绍如何用C++实现这一功能。

八进制数转十进制数

将一个八进制数转换为十进制数的方法如下:

  1. 从八进制数的最右边(个位)开始,将每个数字乘以8的n次方,其中n等于这个数字的位数减一。

  2. 将每个乘积相加,即得到这个八进制数的十进制表示。

接下来是C++的实现:

#include <iostream>
#include <math.h>

using namespace std;

int convertOctalToDecimal(int octalNumber) {
    int decimalNumber = 0, i = 0;
    while (octalNumber != 0) {
        decimalNumber += (octalNumber % 10) * pow(8, i);
        ++i;
        octalNumber /= 10;
    }
    return decimalNumber;
}

int main() {
    int octalNumber;
    cout << "Enter an octal number: ";
    cin >> octalNumber;
    cout << octalNumber << " in octal = " << convertOctalToDecimal(octalNumber) << " in decimal";
    return 0;
}

该程序实现了将一个八进制数转换为十进制数。其中,convertOctalToDecimal()函数接收一个八进制数,返回对应的十进制数。主函数中,用户输入一个八进制数,并将其转换为十进制数输出。

该程序的输出如下:

Enter an octal number: 75
75 in octal = 61 in decimal
十进制数转八进制数

将一个十进制数转换为八进制数的方法如下:

  1. 将这个十进制数不断除以8,直到商为0为止。

  2. 将每个余数取出来,从最后一个余数开始,组合成一个新的数字。

下面是C++实现:

#include <iostream>

using namespace std;

int convertDecimalToOctal(int decimalNumber) {
    int octalNumber = 0, i = 1;
    while (decimalNumber != 0) {
        octalNumber += (decimalNumber % 8) * i;
        decimalNumber /= 8;
        i *= 10;
    }
    return octalNumber;
}

int main() {
    int decimalNumber;
    cout << "Enter a decimal number: ";
    cin >> decimalNumber;
    cout << decimalNumber << " in decimal = " << convertDecimalToOctal(decimalNumber) << " in octal";
    return 0;
}

该程序实现了将一个十进制数转换为八进制数。其中,convertDecimalToOctal()函数接收一个十进制数,返回对应的八进制数。主函数中,用户输入一个十进制数,并将其转换为八进制数输出。

该程序的输出如下:

Enter a decimal number: 123
123 in decimal = 173 in octal
总结

本文介绍了如何用C++实现八进制数与十进制数之间的转换。这种转换方法并不复杂,但在实际应用中经常需要用到此功能。