Zig Academy · Lezione

Overflow: +, +% e +|

Aritmetica con trapping, wrapping e saturazione

Lezione 2 di 413 passaggi

Overflow: +, +% e +| è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.

I numeri hanno dei limiti

Ogni intero di dimensione definita ha un valore massimo che può contenere. Superarlo provoca un overflow, cioè il momento in cui un valore tenta di oltrepassare il proprio intervallo.

Zig rileva l'overflow

Per impostazione predefinita, il semplice operatore + intercetta l'overflow. In una build sicura, superare il limite arresta il programma invece di corrompere il valore.

var x: u8 = 255;
x = x + 1; // panics: overflow

Perché intercettare l'overflow è utile

Un arresto evidente è preferibile a una risposta errata e silenziosa. L'intercettazione trasforma un bug insidioso in un errore chiaro, che può trovare e correggere rapidamente.

Aritmetica con wrapping con +%

A volte si desidera che il valore ricominci intenzionalmente da capo. L'operatore +% esegue il wrapping, quindi 255 + 1 in un u8 diventa 0.

var x: u8 = 255;
x = x +% 1; // 0

Quando il wrapping è appropriato

Il wrapping è ideale per contatori, hash e checksum, quando il riavvolgimento è il comportamento previsto. Lo richiede con il suffisso %, mai per errore.

Aritmetica saturante con +|

L'operatore +| si ferma al limite invece di eseguire il wrapping. Un u8 a 255 rimane 255, perfetto per i valori che non devono superare una soglia massima.

var x: u8 = 255;
x = x +| 1; // 255

Tre scelte, una decisione

Quindi + intercetta l'overflow, +% esegue il wrapping e +| satura. Scelga il comportamento che corrisponde alle Sue intenzioni, rendendo esplicita la gestione dell'overflow nel codice.

Lo stesso trio per la sottrazione

Questi suffissi non servono solo per l'addizione. -, -%, e -| offrono rispettivamente sottrazione con intercettazione, wrapping e saturazione, nello stesso modo.

var x: u8 = 0;
x = x -| 1; // 0

E anche per la moltiplicazione

Anche la moltiplicazione segue lo stesso schema: *, *%, e *|. La regola unica, scegliere il comportamento dell'overflow, vale per tutti gli operatori aritmetici.

const big = a *% b; // wrap on overflow

Le build predefinite rimangono sicure

Nelle modalità Debug e ReleaseSafe, gli operatori semplici verificano l'overflow. Scelga di non farlo solo quando ha un motivo concreto per eseguire il wrapping o la saturazione.

L'intenzione è visibile nel codice

Poiché ogni comportamento ha il proprio simbolo, chi legge vede a colpo d'occhio la Sua intenzione riguardo all'overflow. Nulla viene dato per scontato: è l'operatore a renderla esplicita.

Verifica rapida

Vuole che un contatore u8 passi da 255 a 0. Quale operatore deve usare?

Riepilogo: scelga la gestione dell'overflow

L'aritmetica semplice intercetta l'overflow, il suffisso % esegue il wrapping e il suffisso | applica la saturazione. Scelga con attenzione: l'overflow non sarà mai una sorpresa nascosta. 🛡️

Gratis per iniziare

Impara Zig con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Overflow: +, +% e +|» è gratuita?

Sì — il testo completo di «Overflow: +, +% e +|» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.

Cosa imparerò in «Overflow: +, +% e +|»?

Aritmetica con trapping, wrapping e saturazione Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Zig Academy?

Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Overflow: +, +% e +|»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Zig Academy?

Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Operatori aritmetici e di confronto
  2. Overflow: +, +% e +|
  3. Operatori bitwise
  4. Logica booleana e short-circuiting
← Torna a Zig Academy