Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

数值类型

整数类型

无符号整数类型包括:

类型最小值最大值
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

浮点类型

IEEE 754-2008 “binary32” 和 “binary64” 浮点类型分别是 f32f64

平台相关整数类型

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

注意

虽然 usize 可以表示每个 * 地址 * ,但将 * 指针 * 转换为 usize 并不一定是可逆的操作。 有关更多信息,请参阅 类型转换表达式std::ptr 以及特别是 来源 的文档。

isize 类型是一个有符号补码整数类型,其位数与平台的指针类型相同。对象和数组大小的理论上限是最大 isize 值。这确保了 isize 可用于计算对象或数组中指针之间的差值,并且可以寻址对象内的每个字节以及末尾之后的一个字节。

usizeisize 至少为 16 位宽。

注意

许多 Rust 代码可能会假设指针、 usizeisize 要么是 32 位要么是 64 位。因此,对 16 位指针的支持是有限的,并且可能需要库的显式关注和确认才能支持。

位有效性

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