bool, uint8_t, uint16_t, uint32_t, uint64_t, int8_t, int16_t, int32_t, int64_t 取值范围分别是什么?
定义形式:
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long uint64_t;
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
typedef signed long int64_t;
布尔类型
- bool:在 C 和 C++ 中,布尔类型
bool
只能取两个值:true
和false
。一般来说,false
代表 0,true
代表非零值(通常是 1)。
无符号整数类型
-
uint8_t:无符号 8 位整数。
- 取值范围:0 到 255
- 计算:2^8 = 256,范围是 0 到 256 - 1。
-
uint16_t:无符号 16 位整数。
- 取值范围:0 到 65,535
- 计算:2^16 = 65,536,范围是 0 到 65,536 - 1。
-
uint32_t:无符号 32 位整数。
- 取值范围:0 到 4,294,967,295
- 计算:2^32 = 4,294,967,296,范围是 0 到 4,294,967,296 - 1。
-
uint64_t:无符号 64 位整数。
- 取值范围:0 到 18,446,744,073,709,551,615
- 计算:2^64 = 18,446,744,073,709,551,616,范围是 0 到 18,446,744,073,709,551,616 - 1。
有符号整数类型
-
int8_t:有符号 8 位整数。
- 取值范围:-128 到 127
- 计算:-2^7 到 2^7 - 1。
-
int16_t:有符号 16 位整数。
- 取值范围:-32,768 到 32,767
- 计算:-2^15 到 2^15 - 1。
-
int32_t:有符号 32 位整数。
- 取值范围:-2,147,483,648 到 2,147,483,647
- 计算:-2^31 到 2^31 - 1。
-
int64_t:有符号 64 位整数。
- 取值范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
- 计算:-2^63 到 2^63 - 1。
总结
类型 | 比特位数 | 取值范围 |
---|---|---|
bool | 1 | true 和 false |
uint8_t | 8 | 0 到 255 |
uint16_t | 16 | 0 到 65,535 |
uint32_t | 32 | 0 到 4,294,967,295 |
uint64_t | 64 | 0 到 18,446,744,073,709,551,615 |
int8_t | 8 | -128 到 127 |
int16_t | 16 | -32,768 到 32,767 |
int32_t | 32 | -2,147,483,648 到 2,147,483,647 |
int64_t | 64 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |