C ++将十六进制(uint8)转换为字符串

时间:2018-09-03 11:57:09

标签: c++ stream hex uint8t

我突然在C ++的字符串流中玩耍,突然发现下面的代码无法按预期运行:

int main()
{
  uint8_t foo = 82;
  std::cout << "0x" << std::uppercase << std::setfill('0') << std::setw(4) << std::hex << foo << std::endl;
}

打印出:0x000R(预期为0x0052) 请注意,当我将foo的类型更改为uint16_t或uint32_t时,输出是正确的。

谁可以向我解释为什么代码如此表现?那是个错误吗?

0 个答案:

没有答案