Tracce
/
Cairo
Cairo
/
Programma
/
Numeri interi
Nu

Numeri interi in Cairo

1 esercizio

Informazioni su Numeri interi

Un integer è un numero senza parte frazionaria. In Cairo, la dichiarazione del tipo per gli interi indica il numero di bit che il programmatore può usare per memorizzare il valore.

Gli interi senza segno possono rappresentare solo numeri positivi e il numero 0 (zero), il che può essere utile in certi contesti di programmazione, come l'indicizzazione degli array e la gestione della memoria.

Cairo supporta anche gli interi con segno, che iniziano con il prefisso i. Questi interi possono rappresentare sia valori positivi che negativi, con dimensioni che vanno da i8 a i128. Ogni variante con segno può memorizzare numeri da $-2^{n-1}$ a $2^{n-1} - 1$ inclusi, dove $n$ è il numero di bit usati da quella variante. Per esempio, un i8 può memorizzare numeri da $-2^7$ a $2^7 - 1$, cioè da $-128$ a $127$.

Lunghezza Senza segno Con segno
8-bit u8 i8
16-bit u16 i16
32-bit u32 i32
64-bit u64 i64
128-bit u128 i128
256-bit u256 ------

Esiste anche un tipo di intero speciale chiamato usize, che al momento è solo un alias per u32. Questo tipo potrebbe assumere un ruolo più distinto in futuro, quando Cairo potrà essere compilato in MLIR (Multi-Level Intermediate Representation).

I letterali interi in Cairo

Puoi scrivere i letterali interi in una qualsiasi delle forme mostrate nella tabella qui sotto. Nota che i letterali numerici che possono avere più tipi numerici ammettono un suffisso di tipo, come 57_u8, per indicare il tipo. È anche possibile usare un separatore visivo _ nei letterali numerici, per migliorare la leggibilità del codice.

Letterali numerici Esempio
Decimale 98222
Esadecimale 0xff
Ottale 0o04321
Binario 0b01

Ma allora come fai a sapere quale tipo di intero usare? Prova a stimare il valore massimo che il tuo intero può assumere e scegli la dimensione adatta. La situazione principale in cui useresti usize è quando indicizzi una qualche collezione.

Operazioni numeriche

Cairo supporta le operazioni matematiche di base che ti aspetti per tutti i tipi di intero: addizione, sottrazione, moltiplicazione, divisione e resto. La divisione tra interi tronca verso lo zero all'intero più vicino. Il codice seguente mostra come useresti ogni operazione numerica in un'istruzione 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
}

Ogni espressione in queste istruzioni usa un operatore matematico e restituisce un singolo valore, che viene poi associato a una variabile.

L'elenco di tutti gli operatori forniti da Cairo si trova in The Cairo Book.

Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Numeri interi

La pratica è bloccata

Sblocca 2 altri esercizi per esercitarti su Numeri interi