C++程序:八进制数与十进制数的相互转换
在计算机系统中,八进制数以八进制数系统表示,而十进制数以十进制数系统表示。八进制数是基数为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` 函数将十进制数转换为八进制数,`OctalToDecimal` 函数将八进制数转换为十进制数。
在 `DecimalToOctal` 函数中,变量 `octalNum` 最初初始化为零。变量 `placeValue` 表示数字中数字的位置。`octalNum` 的值使用 while 循环找到。
对于 while 循环的每次迭代,`decimalNum` 除以 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);
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP