Numeric types
数字型
mumeric.md
commit: 80ec1463a515858cbb49ac4c9f601a75992893b2
本章译文最后维护日期:2023-11-05
Integer types
整型/整数类型
无符号整数类型:
类型 | 最小值 | 最大值 |
---|---|---|
u8 | 0 | 28-1 |
u16 | 0 | 216-1 |
u32 | 0 | 232-1 |
u64 | 0 | 264-1 |
u128 | 0 | 2128-1 |
有符号二进制补码整型包括:
类型 | 最小值 | 最大值 |
---|---|---|
i8 | -(27) | 27-1 |
i16 | -(215) | 215-1 |
i32 | -(231) | 231-1 |
i64 | -(263) | 263-1 |
i128 | -(2127) | 2127-1 |
Floating-point types
浮点型
Rust 对应 IEEE 754-2008 的“binary32”和“binary64”浮点类型分别是 f32
和 f64
。
Machine-dependent integer types
和计算平台相关的整型
usize
类型是一种无符号整型,其宽度与平台的指针类型的宽度相同。它可以表示进程中的每个内存地址。
isize
类型是一种有符号整型,其宽度与平台的指针类型的宽度相同。(Rust 规定)对象的内存宽度和数组的长度的理论上限是 isize
的最大值。这确保了 isize
可以用来计算指向对象或数组内部的指针之间的差异,并且可以寻址对象中的每个字节以及末尾之后的那个字节。
usize
和 isize
的宽度至少是 16-bits。
注意:许多 Rust 代码可能会假设指针、
usize
和isize
是 32-bit 或 64-bit 的。因此,16-bit 指针的支持是有限的,这部分支持可能需要来自库的明确关注和确认。
Bit validity
位有效性
对于每种数字类型 T
,T
的位有效性等同于 [u8; size_of::<T>()]
的位有效性。未初始化的字节不是有效的 u8
。