Numeric types

数字型

mumeric.md
commit: 80ec1463a515858cbb49ac4c9f601a75992893b2
本章译文最后维护日期:2023-11-05

Integer types

整型/整数类型

无符号整数类型:

类型最小值最大值
u8028-1
u160216-1
u320232-1
u640264-1
u12802128-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”浮点类型分别是 f32f64

Machine-dependent integer types

和计算平台相关的整型

usize类型是一种无符号整型,其宽度与平台的指针类型的宽度相同。它可以表示进程中的每个内存地址。

isize类型是一种有符号整型,其宽度与平台的指针类型的宽度相同。(Rust 规定)对象的内存宽度和数组的长度的理论上限是 isize 的最大值。这确保了 isize 可以用来计算指向对象或数组内部的指针之间的差异,并且可以寻址对象中的每个字节以及末尾之后的那个字节。

usizeisize 的宽度至少是 16-bits。

注意:许多 Rust 代码可能会假设指针、usizeisize 是 32-bit 或 64-bit 的。因此,16-bit 指针的支持是有限的,这部分支持可能需要来自库的明确关注和确认。

Bit validity

位有效性

对于每种数字类型 TT 的位有效性等同于 [u8; size_of::<T>()] 的位有效性。未初始化的字节不是有效的 u8