c_各个unsigned int 和 int的取值范围

发布于:2024-07-10 ⋅ 阅读:(148) ⋅ 点赞:(0)

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 只能取两个值:truefalse。一般来说,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 truefalse
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