📅  最后修改于: 2023-12-03 15:14:04.634000             🧑  作者: Mango
在计算机科学领域中,常常涉及到八进制数与十进制数之间的转换。本文将介绍如何用C++实现这一功能。
将一个八进制数转换为十进制数的方法如下:
从八进制数的最右边(个位)开始,将每个数字乘以8的n次方,其中n等于这个数字的位数减一。
将每个乘积相加,即得到这个八进制数的十进制表示。
接下来是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
将一个十进制数转换为八进制数的方法如下:
将这个十进制数不断除以8,直到商为0为止。
将每个余数取出来,从最后一个余数开始,组合成一个新的数字。
下面是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++实现八进制数与十进制数之间的转换。这种转换方法并不复杂,但在实际应用中经常需要用到此功能。