转自:https://blog.csdn.net/martin216/article/details/89327554
int i= 125;
std::cout<<std::hex<<i<<std::endl; // 以16进制输出
std::cout<<std::oct<<i<<std::endl; // 以8进制输出
也可以:
std::cout<<std::setbase(16)<<i<<std::endl; // 以16进制输出
std::cout<<std::setbase(8)<<i<<std::endl; // 以8进制输出
还可以:
std::cout<<std::setiosflags(std::ios::hex)<<i<<std::endl; //need include iomanip, 以16进制输出
std::cout<<std::setiosflags(std::ios::oct)<<i<<std::endl; //need include iomanip, 以8进制输出
注:在更改了数值的输出格式后,要记得使用 cout<<setbase(16)或者cout << dec (与上面对应)进输出改成默认的十进制输出。
还有一种采用c的做法:
printf("%x\n", i);
补充:
输出二进制则要先把数值变成二进制存储来输出。
int num = 10;
cout << (bitset<8>)num << endl; // 输出 00001010 ,#include <bitset>