Треки
/
Cairo
Cairo
/
Салабус
/
Цілі числа
Ці

Цілі числа у Cairo

1 вправа

Про концепцію Цілі числа

integer - це число без дробової частини. У Cairo оголошення типу для цілих чисел указує, скільки бітів програміст може використати для зберігання значення.

Беззнакові цілі числа можуть представляти лише додатні числа та число 0 (нуль), що може бути корисним у певних контекстах програмування, як-от індексування масиву та керування памʼяттю.

Cairo також підтримує знакові цілі числа, які починаються з префікса i. Такі цілі числа можуть представляти як додатні, так і відʼємні значення, а їхні розміри сягають від i8 до i128. Кожен знаковий варіант може зберігати числа від $-2^{n-1}$ до $2^{n-1} - 1$ включно, де $n$ - кількість бітів, які використовує цей варіант. Наприклад, i8 може зберігати числа від $-2^7$ до $2^7 - 1$, тобто від $-128$ до $127$.

Довжина Беззнаковий Знаковий
8-бітний u8 i8
16-бітний u16 i16
32-бітний u32 i32
64-бітний u64 i64
128-бітний u128 i128
256-бітний u256 ------

Є також особливий тип цілих чисел під назвою usize, який наразі є лише псевдонімом для u32. У майбутньому цей тип може відігравати помітнішу роль, коли Cairo можна буде компілювати в MLIR (Multi-Level Intermediate Representation).

Літерали цілих чисел у Cairo

Ми можемо записувати літерали цілих чисел у будь-якій з форм, наведених у таблиці нижче. Зауважмо, що числові літерали, які можуть належати до кількох числових типів, дозволяють суфікс типу, як-от 57_u8, щоб позначити тип. Також можна використовувати візуальний розділювач _ у числових літералах, щоб покращити читабельність коду.

Числові літерали Приклад
Десятковий 98222
Шістнадцятковий 0xff
Вісімковий 0o04321
Двійковий 0b01

То як дізнатися, який тип цілого числа використати? Спробуймо оцінити максимальне значення, яке може мати наше ціле число, і вибрати відповідний розмір. Основна ситуація, у якій ми використовуємо usize, - це індексування якоїсь колекції.

Числові операції

Cairo підтримує базові математичні операції, яких ми очікуємо для всіх цілих типів: додавання, віднімання, множення, ділення та остачу. Ділення цілих чисел відкидає дробову частину в напрямку нуля до найближчого цілого. Наведений нижче код показує, як використати кожну числову операцію в інструкції let:

fn main() {
    // addition
    let sum = 5_u128 + 10_u128;

    // subtraction
    let difference = 95_u128 - 4_u128;

    // multiplication
    let product = 4_u128 * 30_u128;

    // division
    let quotient = 56_u128 / 32_u128; // result is 1
    let quotient = 64_u128 / 32_u128; // result is 2

    // remainder
    let remainder = 43_u128 % 5_u128; // result is 3
}

Кожен вираз у цих інструкціях використовує математичний оператор і обчислюється в одне значення, яке потім привʼязується до змінної.

Перелік усіх операторів, які надає Cairo, можна знайти в The Cairo Book.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Цілі числа

Практика заблокована

Розблокуйте ще 2 вправи, щоб практикувати концепцію Цілі числа