📜  扩展的整数类型(在C C++中选择正确的整数大小)(1)

📅  最后修改于: 2023-12-03 14:54:32.596000             🧑  作者: Mango

扩展的整数类型

在 C 和 C++ 中,有一些扩展的整数类型可以使用,可以提高程序的可移植性和可靠性。这些扩展类型通常在标准的整数类型之上增加了更多位或具有更特殊的属性,例如有无符号类型、可靠性更高的算术运算等。

扩展的整数类型列表

下面是 C 和 C++ 中的一些扩展的整数类型及其大小范围:

| 类型 | 存储大小 | 值范围 | | -------------- | ------------ | ----------------------------------------- | | long long int | 8 字节 | $-9,223,372,036,854,775,808$ 到 $9,223,372,036,854,775,807$ | | unsigned long long int | 8 字节 | 0 到 $18,446,744,073,709,551,615$ | | int8_t | 1 字节 | $-128$ 到 $127$ | | uint8_t | 1 字节 | 0 到 $255$ | | int16_t | 2 字节 | $-32,768$ 到 $32,767$ | | uint16_t | 2 字节 | 0 到 $65,535$ | | int32_t | 4 字节 | $-2,147,483,648$ 到 $2,147,483,647$ | | uint32_t | 4 字节 | 0 到 $4,294,967,295$ | | int64_t | 8 字节 | $-9,223,372,036,854,775,808$ 到 $9,223,372,036,854,775,807$ | | uint64_t | 8 字节 | 0 到 $18,446,744,073,709,551,615$ |

这些类型通常在头文件 stdint.hcstdint 中定义,如果您需要使用它们,请确保先引入这些头文件。

选择正确的整数大小

当您编写程序时,应该根据需要选择适当的整数类型。如果您知道数字的大小范围,应该选择一个足够大的类型,这样可以避免数据溢出和计算错误。例如,如果您需要储存一个大于 32,767 的整数,则不应该使用 int16_t 类型,而应该使用 int32_t 类型。

另外,如果不需要有负数,应该使用无符号类型(如 uint32_t)来储存数字。这样可以避免某些出乎意料的行为,例如 -1 在转换为无符号类型时将变成该类型所能表示的最大值。

总结

扩展的整数类型可以提高程序的可移植性和可靠性,可以通过它们来避免数据溢出和计算错误,应该根据需要选择适当的整数类型。