【基础知识】符号整数和非符号整数
uint8
uint16
和uint32
是无符号整数类型,分别有16位和32位。它们能存储的数字数量由其位数决定。
unit8
: 是8位无符号整数,可以存储的数量是2^8 ; 因为包括一个0, 所以范围是0~255**
uint16
**:uint16
是一个16位的无符号整数。- 它可以存储的数字数量是 2^16。
- 计算得出:216=65536216=65536。
- 因此,
uint16
能存储的数字范围是从0到65535。
**
uint32
**:uint32
是一个32位的无符号整数。- 它可以存储的数字数量是 2^32。
- 计算得出:232=4294967296232=4294967296。
- 因此,
uint32
能存储的数字范围是从0到4294967295。
总结:
uint16
能存储的数字数量是 216216,即65536个数字。uint32
能存储的数字数量是 232232,即4294967296个数字。
int32
是一个32位的有符号整数,其数值范围是从 −231−231 到 231−1231−1。这里使用31次方而不是32次方的原因是,有符号整数的最高位(即最左边的位)用于表示符号,其中0表示正数,1表示负数。因此,实际用于表示数值的位数是31位。
具体来说:
- 对于正数,最高位是0,剩下的31位可以表示 231231 个不同的正数值。
- 对于负数,最高位是1,剩下的31位可以表示 231231 个不同的负数值。
- 由于0既不是正数也不是负数,它单独占用了一个数值。
因此,int32
的总数值范围是从 −231−231 到 231−1231−1,包括了 231231 个负数,231−1231−1 个正数,以及0。这就是为什么我们说int32
的范围是31次方而不是32次方的原因。
【基础知识】符号整数和非符号整数
https://leiqi.top/2024-11-23-dce4118b03a7.html