c++十六进制数字格式

发布于 2024-08-08 08:58:06 字数 475 浏览 3 评论 0原文

我正在尝试输出字符的十六进制值并以一种很好的方式对其进行格式化。

必需:0x01:值0x1

我能得到的是:00x1:值0x1 //或0x1,如果我不使用iomanip

这是我的代码,'ch'被声明为 unsigned char。除了检查值并手动添加“0”之外,还有其他方法吗?

cout << showbase;
cout << hex << setw(2) << setfill('0') << (int) ch;

编辑:

我在网上找到了一个解决方案:

cout << internal << setw(4) << setfill('0') << hex << (int) ch

I'm trying to output the hex value of a char and format it in a nice way.

Required: 0x01 : value 0x1

All I can get is: 00x1 : value 0x1 // or 0x1 if i don't use iomanip

Here's the code i have, 'ch' was declared to be a unsigned char. Is there any other way to do it other than checking the value and manually add an '0'??

cout << showbase;
cout << hex << setw(2) << setfill('0') << (int) ch;

Edit:

I found one solution online:

cout << internal << setw(4) << setfill('0') << hex << (int) ch

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

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

发布评论

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

评论(2

猫九 2024-08-15 08:58:06
std::cout << "0x" << std::noshowbase << std::hex << std::setw(2) << std::setfill('0') << (int)ch;

由于 setw 填充到整个打印数字的左侧(应用 showbase 之后),因此 showbase 在您的情况下不可用。相反,请手动打印出底座,如上所示。

std::cout << "0x" << std::noshowbase << std::hex << std::setw(2) << std::setfill('0') << (int)ch;

Since setw pads out to the left of the overall printed number (after showbase is applied), showbase isn't usable in your case. Instead, manually print out the base as shown above.

季末如歌 2024-08-15 08:58:06

在我的一个项目中,我这样做了:

ostream &operator<<(ostream &stream, byte value)
{
     stream << "0x" << hex << (int)value;
     return stream;
}

我向操作员支付了额外费用<<对于流输出,任何字节都以十六进制显示。 byte 是 unsigned char 的 typedef。

In one on my projects I did this:

ostream &operator<<(ostream &stream, byte value)
{
     stream << "0x" << hex << (int)value;
     return stream;
}

I surchaged the operator<< for stream output, and anything that was a byte was shown in hexadecimal. byte is a typedef for unsigned char.

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