整型
第 5 章 整型
最大值 std::u128::MAX,它的值是 340282366920938463463374607431768211455
最小值 std::i128::MIN,它的值是 -170141183460469231731687303715884105728
整数可以分为 有符号整型 和 无符号整型
- 有符号整型,英文
signed
,既可以存储正数,也可以存储负数。 - 无符号整型,因为
unsigned
,只能存储正数。
大小 | 有符号 | 无符号 |
---|---|---|
8 bit | i8 | u8 |
16 bit | i16 | u16 |
32 bit | i32 | u32 |
64 bit | i64 | u64 |
128 bit | i128 | u128 |
Arch | isize | usize |
按照存储空间来说,整型可以进一步划分为 1字节
、2字节
、4字节
、8字节
、16字节
。
1 字节 = 8 位,每一位能只能存储二进制 0 或 1,因此每一个字节能够存储的最大数字是 256,而最小数字则是 -127。
整型的长度还可以是 arch
。arch
是由 CPU 构架决定的大小的整型类型。大小为 arch
的整数在 x86
机器上为 32
位,在 x64
机器上为 64
位。
i32 是默认的整型。
1 | let price = 100; // i32 默认 |
如果类型和值不匹配,编译不会通过,并且报错。
1 | let price6:i32=66.66 |
整型取值范围
有符号整型 能够存储的最小值为 -(2^(n-1)
,能够存储的最大值为 2^(n-1) -1
。
无符号整型 能够存储的最小值为 0
,能够存储的最大值为 2^n - 1
。
其中 n
是指数据类型的大小。(上面表格里的第一列)
整型 i8
,能够存储的最小值为 -(2^(8-1)) = -128
。最大值为 (2^(8-1)-1) = 127
。
整型溢出
我们已经计算了 i8 的最大值是 127。我给一个更大的数值会如何呢?
1 | let price7:i8=192; |
很明确的告诉你超出了 i8 的范围
添加微信 | 公众号更多内容 |
---|---|
![]() |
![]() |
本博客所发布的内容,部分内容来源于网络,版权归原作者所有,如有侵权,请联系删除。转载请注明来自 面向加薪学习!