我想在 C + + 中处理无符号8位变量。无论是 unsigned char
还是 uint8_t
都可以做到这一点(这是预期的,因为 AFAIK uint8_t
只是 unsigned char
的一个别名,或者调试器提供它。)。
问题是,如果我在 C + + 中使用 ostream 打印出变量,它会将其视为 char。如果有:
unsigned char a = 0;
unsigned char b = 0xff;
cout << "a is " << hex << a <<"; b is " << hex << b << endl;
那么输出是:
a is ^@; b is 377
而不是
a is 0; b is ff
我尝试使用 uint8_t
,但是正如我之前提到的,它被类型化为 unsigned char
,所以它也可以做同样的事情。如何正确打印变量?
编辑: 我在整个代码中的许多地方都是这样做的。有没有什么办法,我可以做这个 没有铸造到 int
每次我想打印?