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

Are int8_t and uint8_t really integers? What are their use?

本文关键字:什么 整数 uint8 真的 int8      更新时间:2023-10-16

uint8_t到底是为了什么?如果它仍然无法与unsigned char区分开来,并且不能用于重载函数?

我在这篇文章中找到了很多答案:std::cout 处理uint8_t作为一个角色

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

在所有具有 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这样的类型别名是不可能的,也不存在。例如,如果您看到此固定宽度整数引用,您将看到确切的固定宽度整数类型是可选的。

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