计算机内都是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 进制。
你是说输出么, 还是从16进制的数字字符串转换成8进制的字符串?
如果是后者你可以用
char* itoa(int v, char *buf, int radix);
v 要转换的值, buf 结果缓冲, radix 进制
如把 0x124231aaa转换为8进制, 可以这样
char res[100];
itoa(0x124231aaa, res, 8);
就可以了
如果是要你们自己写过程, 那16->8进制用移位最简单了
int i=1000;
cout<
hex和oct定义在