使用cout以hex格式输出
cout << "0x"<< hex << setiosflags(ios::uppercase) << setfill('0') << setw(2) << (int)10 << endl;
其中hex设置以16进制输出
setiosflags(ios::uppercase)
设置16进制数大写输出
setiosflags各参数定义
setiosflags(ios::fixed)
固定的浮点显示setiosflags(ios::scientific)
指数表示setiosflags(ios::left)
左对齐setiosflags(ios::right)
右对齐setiosflags(ios::skipws
忽略前导空白setiosflags(ios::uppercase)
16进制数大写输出setiosflags(ios::lowercase)
16进制小写输出setiosflags(ios::showpoint)
强制显示小数点setiosflags(ios::showpos)
强制显示符号setfill('0')
设置其他字符填充 如果输出字符的宽度不够 则以设置的字符输出
setw(2)设置输出宽度,如果宽度设置为3 则输出0x00A
PS:
最后的强转int:有资料说明cout << hex 只对整数有效 但是我在VS上不对数值进行强转也能以16进制输出
C++ cout的一些格式化输出
#include <iostream>
#include <iomanip>
using std::cout;
using std::endl;
int main(int argc,char *argv[],char *envp[])
{
cout<<1234567890<<endl;
cout<<std::setiosflags(std::ios_base::right)<<std::setw(20)<<std::setfill(' ')<<1234567890<<endl;
cout.imbue(std::locale("english"));
cout<<1234567890<<endl;
cout.unsetf(cout.flags());
cout<<std::showbase<<std::hex<<1234567890<<endl;
cout.unsetf(cout.flags());
return 0;
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。