用C ++打印十六进制值

时间:2011-09-13 11:34:06

标签: c++ hex

  

可能重复:
  Converting an uint64 into a (full)hex string, C++

我试图在C ++中打印十六进制等效的整数,

int value=2;
cout<<hex<<value;

我得到2作为输出,我想要0x00000002作为输出(即具有非重要的零), 有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

这更像是格式化问题。除了十六进制之外,你还想使用setw和setfill,因为你想要左边填充0和0x前缀。

cout << "0x" << setw(8) << setfill('0') << right << hex << value;

答案 1 :(得分:1)

你可以使用这个功能

char *  itoa ( int value, char * str, int base );

答案 2 :(得分:1)

使用以下内容:

printf("Ox%08x", value);