cout 输出 uint8_t 整形值
在C++中我们一般用std::cout输出到屏幕,但如果直接用cout输出uint8_t类型的无符号整形数的话却不能得到我们想到的整形值,比如下例代码:
1 |
|
我们希望输出“98”,但是显示的却是“b”。这是因为uint8_t的定义是unsigned char,而<<操作符有一个重载版本是 ostream& operator<<(ostream&, unsigned char),它会将unsigned char类型的参数经过ASCII码转换输出对应的字符,上例中字符’b’的ASCII值就是98。
要是想输出整形值而非字符,其实也很简单,在输出的时候将uint8_t转换成unsigned int类型就可以了,可以用下面的输出语句:
1 | std::cout << unsigned(a) << std::endl; |
- 或者
1
2std::cout << +a << std::endl;
std::cout << a+0 << std::endl;