int8_t和uint8_t真的是整数吗?它们有什么用?

时间:2020-02-01 12:28:06

标签: c++

uint8_t到底是做什么的?是否仍然无法与unsigned char区分并且不能用于重载函数?

我在这篇文章中找到了许多答案:std::cout deal with uint8_t as a character

所以我已经完全编辑了问题,并重新命名了问题。

2 个答案:

答案 0 :(得分:4)

在所有8位字节的系统上,它们是char的变体。这包括例如的类型别名。 uint8_t(在这种系统上是unsigned char的类型别名)。

无论您使用哪种类型别名,char(以及unsigned charsigned char(是的,这是三种不同的类型))都将被视为字符由流输出运算符<<

如果您要打印任何基于char的类型的整数值,则需要将其强制转换为int。如

std::cout << static_cast<unsigned>(my_uint8_t_var) << '\n';

请注意:有些 系统没有8位字节。在这样的系统上,像uint8_t这样的类型别名是不可能的,并且不存在。如果您看到例如this fixed-width integer reference,您会看到确切的固定宽度整数类型是可选的。

答案 1 :(得分:0)

uint8_t是8位无符号整数。用于存储0到255之间的值。它通常与无符号char具有相同的范围,但它是cstdint可用的几种显式大小的整数类型之一

相关问题