在 C++ 中打印十六进制值

Ash*_*hah 3 c++ hex

可能的重复:
将 uint64 转换为(完整)十六进制字符串,C++

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

int value=2;
cout<<hex<<value;
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*rty 5

这更多的是一个格式问题。除了十六进制之外,您还想使用 setw 和 setfill,因为您希望左侧填充 0 和 0x 前缀。

cout << "0x" << setw(8) << setfill('0') << right << hex << value;
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记包含“&lt;iomanip&gt;”来获取“setw()”和“setfill()”。 (2认同)