可能的重复:
将 uint64 转换为(完整)十六进制字符串,C++
我正在尝试在 C++ 中打印整数的十六进制等效值,
int value=2;
cout<<hex<<value;
Run Code Online (Sandbox Code Playgroud)
我得到 2 作为输出,我想要 0x00000002 作为输出(即带有非有效零),有人可以帮我解决这个问题吗?
这更多的是一个格式问题。除了十六进制之外,您还想使用 setw 和 setfill,因为您希望左侧填充 0 和 0x 前缀。
cout << "0x" << setw(8) << setfill('0') << right << hex << value;
Run Code Online (Sandbox Code Playgroud)