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

Сужение целого типа в Rust

Перевод в более короткий целый тип оставляет младшие биты, а лишние отбрасывает. Это не то же самое, что проверка диапазона: результат может удивить, если число не вмещалось в новый тип.

Класический пример: большое значение в широком типе и узкий тип на выходе:

let n = 300i32 as i8; println!("{}", n);

На экране появится 44, а не 300. Обычным счетом это число заранее не получить. Так работает сужение битовой ширины.

Дано число:

let num = 200;

Переведите его из i32 в i8 и выведите результат.

Скажите, можно ли обычным счетом заранее узнать число на экране, если оно не влезло в i8.

Скажите, сохраняет ли сужение полное десятичное значение, если оно не влезало в новый тип.

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