Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmNuUT 25 of 373 menu
◀ ▶

Беззнаковые целые в Rust

Целое число можно сделать беззнаковым. Имена таких типов начинаются с буквы u: u8, u16, u32, u64, u128 и usize. Беззнаковое число бывает только нулем и положительным. Отрицательных значений у него нет.

Так делают, чтобы расширить диапазон. Байтов столько же, сколько у типа со знаком. Место, которое уходило на минус, отдано большим положительным числам. У типа i32 верхняя граница около двух миллиардов. У типа u32 она примерно вдвое выше: до 4294967295. Число 3000000000 в i32 не входит, а в u32 входит.

Тип usize проблемный, так как для него размер ячейки зависит от компьютера. На 32-битной системе это 4 байта, на 64-битной - 8. Верхняя граница совпадает с u32 или с u64.

Беззнаковый тип берут и тогда, когда минус по смыслу числа не нужен. Количество штук, длина текста, номер элемента и размер в байтах не бывают отрицательными.

Вот таблица диапазонов беззнаковых чисел:

Тип Байты Диапазон
u8 1 от 0 до 255
u16 2 от 0 до 65535
u32 4 от 0 до 4294967295
u64 8 от 0 до 18446744073709551615
u128 16 намного шире, чем у u64
usize 4 или 8 на 32 битах как u32, на 64 битах как u64

В каком диапазоне изменяются числа типа u16?

В каком диапазоне изменяются числа типа u32?

В каком диапазоне изменяются числа типа usize?

В каком диапазоне изменяются числа типа u64?

Есть число -1. Помещается ли оно в диапазон типа u16?

Есть число 70000. Помещается ли оно в диапазон типа u16?

Есть число 3000000000. Помещается ли оно в диапазон типа u32?

Есть число -5. Помещается ли оно в диапазон типа u32?

Есть число -1. Помещается ли оно в диапазон типа u64?

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить