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” - это f32 и f64 соответственно.

Машинно-зависимые целочисленные типы

Тип usize - это беззнаковый целочисленный тип с тем же количеством битов, что и указательный тип платформы. Он может представлять каждый адрес памяти в процессе.

Note

Хотя usize может представлять каждый адрес, преобразование указателя в usize не обязательно является обратимой операцией. Для получения дополнительной информации смотрите документацию по выражениям приведения типа, std::ptr и в частности provenance.

Тип isize - это знаковый целочисленный тип с тем же количеством битов, что и указательный тип платформы. Теоретическая верхняя граница размера объекта и массива

  • это максимальное значение isize. Это гарантирует, что isize может быть использован для вычисления разниц между указателями на объект или массив и может адресовать каждый байт внутри объекта вместе с одним байтом после конца.

usize и isize имеют ширину не менее 16 бит.

Note

Многие части кода на Rust могут предполагать, что указатели, usize и isize являются либо 32-битными, либо 64-битными. Как следствие, поддержка 16-битных указателей ограничена и может требовать явной заботы и подтверждения от библиотеки для поддержки.

Валидность битов

Для каждого числового типа T валидность битов T эквивалентна валидности битов [u8; size_of::<T>()]. Неинициализированный байт не является допустимым u8.