C++中如何完成十六进制到八进制的转换

2025-02-14 04:18:54
推荐回答(3个)
回答1:

计算机内都是2进制,输入输出时才体现出 其它进制。

#include
#include
using namespace std;
main(){
int x;
cout << "input hex data " << endl;
cin >> hex >> x; // 这个方法输入的数处理为16进制
cout << oct << x << endl; // 这个方法输出的数处理为8进制
}

顺便说一下:C 语言输入输出 %x 格式 是 16 进制, %o 是 8 进制。

回答2:

你是说输出么, 还是从16进制的数字字符串转换成8进制的字符串?

如果是后者你可以用

char* itoa(int v, char *buf, int radix);

v 要转换的值, buf 结果缓冲, radix 进制

如把 0x124231aaa转换为8进制, 可以这样


char res[100];
itoa(0x124231aaa, res, 8);

就可以了



如果是要你们自己写过程, 那16->8进制用移位最简单了

回答3:

int i=1000;
cout<cout<
hex和oct定义在