t27.aiEnglish

Целые числа и их ширина

Вы узнаете

Целые типы, их диапазоны и ошибка для значения, которое не помещается в тип.

Буква u в имени типа означает беззнаковый, i — со знаком, а цифры — число битов. u8 хранит от 0 до 255, u16 — от 0 до 65535, i32 хранит и отрицательные числа. Компилятор сверяет константу с её типом: дайте u8 значение 300, и он остановится с ошибкой о том, что никакой u8 не вмещает 3 цифры. В других местах проверка в браузере снисходительна, так что её молчание — не доказательство.

Попробуйте

Поставьте BYTE_MAX равным 300 в плеере и прочитайте ошибку, которую напечатает компилятор.

Открыть интерактивный урок →

t27 basics 5: integer widths and their ranges
t27 basics 5: integer widths and their ranges ↗

u8, u16, u32 and i32 with their bit counts and ranges, and the error t27c gives a value too big for its type. Lesson 5 of the t27 basics course.

specs/basics/05_whole_numbers.t27

// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 5: Whole numbers and their widths.
; u8, u16, u32 and i32: how many bits a number has decides which values it can hold.

module basics_05_whole_numbers;

pub const BYTE_MAX : u8 = 255;
pub const WORD_MAX : u16 = 65535;
pub const SMALL_NEG : i32 = -5;

test wider_types_hold_more {
    assert WORD_MAX > BYTE_MAX;
    assert BYTE_MAX == 255;
    assert SMALL_NEG < 0;
}

Открыть спеку урока в плеере ↗

Все уроки