C++设计一个程序,将十进制数分别转换为八进制数和十六进制数
时间: 2023-09-09 13:08:30 浏览: 105
好的,以下是一个 C++ 代码示例,可以将十进制数转换为八进制数和十六进制数:
```c++
#include <iostream>
using namespace std;
int main() {
int decimal;
cout << "请输入一个十进制数:";
cin >> decimal;
// 将十进制数转换为八进制数
int octal = 0, i = 1;
while (decimal != 0) {
octal += (decimal % 8) * i;
decimal /= 8;
i *= 10;
}
// 将十进制数转换为十六进制数
char hexadecimal[100];
int j = 0;
while (decimal != 0) {
int remainder = decimal % 16;
if (remainder < 10) {
hexadecimal[j++] = remainder + 48;
} else {
hexadecimal[j++] = remainder + 55;
}
decimal /= 16;
}
hexadecimal[j] = '\0';
// 输出转换后的结果
cout << "转换后的八进制数为:" << octal << endl;
cout << "转换后的十六进制数为:" << strrev(hexadecimal) << endl;
return 0;
}
```
在这个程序中,我们首先使用 `cin` 对象来获取用户输入的十进制数,然后使用循环和取模运算将其转换为八进制数,并将结果存储在变量 `octal` 中。接着,我们使用循环和取模运算将其转换为十六进制数,并将结果存储在字符数组 `hexadecimal` 中。最后,我们使用 `cout` 对象将转换后的结果输出到控制台。
需要注意的是,由于 C++ 中没有内置的字符串反转函数,我们在输出十六进制数时需要使用 `strrev()` 函数将其反转。
阅读全文