我想在C ++中使用无符号的8位变量。无论是unsigned char或uint8_t做的伎俩,只要算术而言(这是意料之中的,因为据我所知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,但是正如我前面提到的,这是typedefeded的unsigned char,所以也一样。如何正确打印变量?
编辑:我在代码中的很多地方都这样做。有什么方法可以在不强制int每次打印的情况下执行此操作?
人到中年有点甜
一只甜甜圈
相关分类