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

发布于 2024-12-04 08:10:08 字数 366 浏览 3 评论 0原文

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

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

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

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

Possible Duplicate:
Converting an uint64 into a (full)hex string, C++

I am trying to print the hexadecimal equivalent of an integer in C++,

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

I am getting 2 as output, i want 0x00000002 as output (i.e. with the non significant zeroes),
can someone please help me out with this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

喜爱纠缠 2024-12-11 08:10:08

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

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

This is more of a formatting problem. You want to use setw and setfill in addition to hex, since you want a the left padded with 0s and the 0x prefix.

cout << "0x" << setw(8) << setfill('0') << right << hex << value;
平生欢 2024-12-11 08:10:08

你可以使用这个功能

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

you can use the function

char *  itoa ( int value, char * str, int base );
娇纵 2024-12-11 08:10:08

使用以下内容:

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

Use the following:

printf("Ox%08x", value);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文