Skip to main content
computer-sciencecalculatorguide

Calcolatore di sottrazione binaria: prestito, complemento a due ed esempi svolti

·9 min read·Solvify Team

Un calcolatore di sottrazione binaria trova la differenza tra due numeri in base 2, ma ottenere lo stesso risultato a mano richiede di conoscere due metodi diversi: il prestito diretto, che ricalca il modo in cui sottrai i numeri decimali sulla carta, e la sottrazione con complemento a due, che è il metodo realmente usato dall'hardware dei computer. Questa guida affronta entrambi gli approcci con esempi svolti per intero — compreso un prestito a cascata attraverso più zeri — oltre alla verifica in decimale di ogni risultato e agli errori che più spesso mandano all'aria un calcolo di sottrazione binaria.

Che cos'è la sottrazione binaria e che cosa calcola davvero un calcolatore di sottrazione binaria?

La sottrazione binaria trova la differenza tra due numeri scritti in base 2, usando solo le cifre 0 e 1. Un calcolatore di sottrazione binaria applica la stessa logica di prestito e sottrazione che già conosci dall'aritmetica decimale, solo con un insieme più ristretto di regole tra cifre: 0 − 0 = 0, 1 − 0 = 1, 1 − 1 = 0 e 0 − 1 = 1 con un prestito di 1 dalla colonna successiva a sinistra. Proprio quest'ultima regola è il punto in cui la sottrazione binaria con prestito diventa insidiosa, perché in base 2 il prestito porta nella colonna corrente un valore pari a 2 (non 10, come in decimale), e un singolo prestito può propagarsi attraverso diverse colonne di zeri prima di trovare un 1 da cui attingere. Ogni esempio svolto qui sotto ripercorre quella catena di prestiti cifra per cifra.

Regole della sottrazione binaria: 0−0=0, 1−0=1, 1−1=0 e 0−1=1 con un prestito di 1 dalla colonna successiva.

Come si sottraggono i numeri binari con il prestito diretto?

Ecco un esempio completo con prestito diretto: sottrai 01101₂ da 10110₂, procedendo da destra a sinistra una colonna alla volta, esattamente come quando sottrai numeri decimali sulla carta.

1. Passaggio 1 — Allinea le colonne

1 0 1 1 0 − 0 1 1 0 1 Allinea entrambi i numeri sulla cifra più a destra (la meno significativa) prima di sottrarre.

2. Passaggio 2 — Colonna 1 (la più a destra): 0 − 1

0 − 1 richiede un prestito. Prendi in prestito 1 dalla colonna successiva, così questa colonna diventa 2 − 1 = 1. Scrivi 1 e segna che la colonna successiva deve restituire un prestito.

3. Passaggio 3 — Colonna 2: 1 − 0, meno il prestito

La colonna contiene in origine 1 − 0, ma deve un prestito dal Passaggio 2, quindi diventa (1 − 1) − 0 = 0. Scrivi 0.

4. Passaggio 4 — Colonna 3: 1 − 1

1 − 1 = 0, e qui non c'è nessun prestito da restituire. Scrivi 0.

5. Passaggio 5 — Colonna 4: 0 − 1

0 − 1 richiede un altro prestito. Prendi in prestito 1 dalla colonna più a sinistra, così questa colonna diventa 2 − 1 = 1. Scrivi 1 e segna che la colonna più a sinistra deve restituire un prestito.

6. Passaggio 6 — Colonna 5 (la più a sinistra): 1 − 0, meno il prestito

La colonna contiene 1 − 0, ma deve un prestito dal Passaggio 5, quindi diventa (1 − 1) − 0 = 0. Scrivi 0.

7. Passaggio 7 — Leggi il risultato e verificalo in decimale

Leggendo le cifre dal Passaggio 6 fino al Passaggio 2: 01001₂. Verifica in decimale: 10110₂ = 16+4+2 = 22 e 01101₂ = 8+4+1 = 13. 22 − 13 = 9, e 01001₂ = 8+1 = 9 — il risultato binario e quello decimale coincidono.

10110₂ − 01101₂ = 01001₂ (22 − 13 = 9 in decimale) — due prestiti, confermati dal controllo incrociato in decimale.

Come si propaga a cascata un prestito attraverso più zeri nella sottrazione binaria?

Il caso più difficile da rendere leggibile per un calcolatore di sottrazione binaria è il prestito a cascata, in cui una singola richiesta di prestito deve attraversare diverse colonne di 0 prima di raggiungere un 1. Ecco esattamente questo scenario: sottrai 00001₂ da 10000₂.

1. Passaggio 1 — Allinea le colonne

1 0 0 0 0 − 0 0 0 0 1 Solo la colonna più a destra del numero in alto ha bisogno di un prestito, ma non c'è nessun 1 vicino da cui attingere direttamente.

2. Passaggio 2 — Colonna 1 (la più a destra): 0 − 1 avvia la cascata

0 − 1 richiede un prestito, ma anche la Colonna 2 vale 0, quindi la richiesta di prestito passa alla Colonna 3. Anche la Colonna 3 vale 0, quindi passa alla Colonna 4. Anche la Colonna 4 vale 0, quindi la richiesta raggiunge infine la Colonna 5, che contiene un 1.

3. Passaggio 3 — Il prestito si risolve nella Colonna 5 e torna indietro

L'1 della Colonna 5 diventa 0 dopo aver concesso il suo prestito. Quel prestito trasforma la Colonna 4 da 0 in 2, ma anche la Colonna 4 deve un prestito alla Colonna 3, quindi ne presta 1 e ne tiene 1 per sé (2 − 1 = 1), lasciando la Colonna 4 = 1. Lo stesso schema « presta e trattieni » si ripete nella Colonna 3 (che diventa 1) e nella Colonna 2 (che diventa 1), finché il prestito iniziale arriva finalmente alla Colonna 1.

4. Passaggio 4 — La Colonna 1 si completa con il suo prestito

La Colonna 1 diventa 2 − 1 = 1 grazie al prestito arrivato a cascata fin dalla Colonna 5. Scrivi 1.

5. Passaggio 5 — Leggi il risultato e verificalo in decimale

Leggendo dalla Colonna 5 alla Colonna 1: 01111₂. Verifica in decimale: 10000₂ = 16 e 00001₂ = 1. 16 − 1 = 15, e 01111₂ = 8+4+2+1 = 15 — i risultati coincidono. Nota la scorciatoia: sottrarre 1 da una potenza di due trasforma sempre ogni zero finale in un 1, che è esattamente ciò che ha prodotto il prestito a cascata.

10000₂ − 00001₂ = 01111₂ (16 − 1 = 15 in decimale) — un singolo prestito si propaga attraverso quattro colonne di zeri prima di risolversi.

Come funziona la sottrazione con il complemento a due e perché i computer la usano?

Il prestito diretto funziona bene a mano, ma l'hardware dei computer non implementa un circuito di sottrazione separato: converte la sottrazione in un'addizione usando il complemento a due, così lo stesso sommatore binario gestisce entrambe le operazioni. Per sottrarre B da A, l'hardware calcola A + (complemento a due di B), poi scarta l'eventuale bit di overflow che eccede il numero di bit utilizzati.

1. Passaggio 1 — Trova il complemento a due del numero da sottrarre

Calcola il complemento a uno (inverti ogni bit) del sottraendo, poi aggiungi 1. Si ottiene così il negativo di quel numero in binario.

2. Passaggio 2 — Somma invece di sottrarre

Somma il minuendo al risultato in complemento a due ottenuto nel Passaggio 1, usando le normali regole dell'addizione binaria.

3. Passaggio 3 — Scarta il bit di overflow se i numeri rientrano nella larghezza di bit scelta

Se l'addizione produce un bit in più oltre la larghezza fissata (per esempio un 6° bit lavorando con numeri a 5 bit), scartalo: quell'overflow rappresenta il prestito assorbito, e i bit rimanenti costituiscono la risposta corretta.

Sottrazione con complemento a due: inverti ogni bit del sottraendo, aggiungi 1, poi somma al minuendo e scarta l'eventuale bit di overflow.

Come si risolve e si verifica un esempio di sottrazione con complemento a due?

Riprendi il primo esempio — 10110₂ − 01101₂, con numeri a 5 bit — per confermare che la sottrazione con complemento a due porta allo stesso risultato del prestito diretto.

1. Passaggio 1 — Trova il complemento a uno di 01101

Inverti ogni bit di 01101₂: 0→1, 1→0, 1→0, 0→1, 1→0, ottenendo 10010₂.

2. Passaggio 2 — Aggiungi 1 per ottenere il complemento a due

10010₂ + 1 = 10011₂. Questa è la rappresentazione in complemento a due (il negativo) di 01101₂ su 5 bit.

3. Passaggio 3 — Somma il minuendo e il complemento a due

10110₂ + 10011₂: sommando colonna per colonna con i riporti si ottiene 101001₂, un risultato a 6 bit perché sono stati sommati due numeri a 5 bit.

4. Passaggio 4 — Scarta il bit di overflow

Elimina il bit più a sinistra (il 6°) da 101001₂, lasciando 01001₂ come risposta a 5 bit.

5. Passaggio 5 — Confronta e verifica in decimale

01001₂ coincide esattamente con il risultato ottenuto prima con il prestito diretto. In decimale, 22 − 13 = 9, e 01001₂ = 8+1 = 9 — i due metodi concordano, a conferma che il procedimento del complemento a due è stato applicato correttamente.

10110₂ − 01101₂ con il complemento a due: 10110 + 10011 = 101001 → scarta l'overflow → 01001₂ = 9, come con il prestito diretto.

Quali errori evitare nella sottrazione binaria?

Pochi errori ricorrenti spiegano la maggior parte dei risultati sbagliati nella sottrazione binaria, sia che il calcolo venga fatto a mano sia che venga confrontato con un calcolatore.

1. Errore 1 — Trattare un prestito binario come un prestito decimale

In base 2 un prestito aggiunge 2 alla colonna corrente, non 10. Dimenticarlo e usare la logica del prestito decimale produce una cifra sbagliata anche quando la direzione del prestito è corretta.

2. Errore 2 — Perdere il filo di un prestito a cascata attraverso più zeri

Quando un prestito deve attraversare diverse colonne di 0 (come in 10000₂ − 00001₂), è facile smettere di tenere traccia di quali colonne devono ancora restituire un prestito. Procedi una colonna alla volta e segna esplicitamente ogni colonna da cui hai preso in prestito.

3. Errore 3 — Dimenticare di aggiungere 1 dopo aver invertito i bit nel complemento a due

Il complemento a due richiede di invertire ogni bit (complemento a uno) e poi aggiungere 1. Saltare il passaggio del +1 lascia il complemento a uno, che produce un risultato sbagliato di un'unità rispetto a quello corretto.

4. Errore 4 — Conservare il bit di overflow nella sottrazione in complemento a due a larghezza fissa

Quando la somma di due numeri a n bit produce un risultato a n+1 bit, quel bit aggiuntivo più a sinistra va scartato per ottenere la risposta corretta a n bit: tenerlo cambia completamente il risultato.

5. Errore 5 — Saltare la verifica in decimale

Convertire in decimale entrambi gli operandi e la risposta finale richiede pochi secondi e intercetta subito quasi ogni svista nella sottrazione, perché una cifra binaria sbagliata produce di solito un totale decimale palesemente errato.

Un prestito binario aggiunge 2 alla colonna corrente, non 10 — la singola causa più comune di errori nella sottrazione binaria.

Esercizi: riesci a risolvere queste sottrazioni binarie?

Prova a risolvere ogni esercizio a mano, usando il prestito diretto oppure la sottrazione con complemento a due, prima di controllare la risposta.

1. Esercizio 1 — Prestito diretto, un solo prestito

Sottrai 0011₂ da 1000₂. Risposta: 1000₂ − 0011₂ = 0101₂. Verifica in decimale: 8 − 3 = 5, e 0101₂ = 4+1 = 5.

2. Esercizio 2 — Sottrazione con complemento a due

Sottrai 0110₂ da 1010₂ usando il complemento a due. Risposta: il complemento a uno di 0110₂ è 1001₂, più 1 dà 1010₂. Somma: 1010₂ + 1010₂ = 10100₂; scarta il bit di overflow per ottenere 0100₂. Verifica in decimale: 10 − 6 = 4, e 0100₂ = 4.

3. Esercizio 3 — Prestito a cascata attraverso tre zeri

Sottrai 000001₂ da 100000₂. Risposta: 100000₂ − 000001₂ = 011111₂, poiché il prestito si propaga attraverso quattro colonne di zeri. Verifica in decimale: 32 − 1 = 31, e 011111₂ = 16+8+4+2+1 = 31.

Ognuno di questi esercizi si riduce alle stesse due mosse: seguire ogni prestito colonna per colonna, oppure convertire in complemento a due e sommare — poi confermare sempre con una verifica in decimale.

Dove si usa la sottrazione binaria nell'informatica reale?

La sottrazione binaria non è solo un esercizio di informatica teorica: è l'operazione alla base di tutto, dall'aritmetica della CPU ai bug della programmazione di basso livello. I processori usano la sottrazione in complemento a due dentro le loro unità aritmetico-logiche (ALU), così un solo circuito sommatore gestisce allo stesso modo addizione e sottrazione, senza bisogno di hardware separato per ciascuna. Il calcolo degli indirizzi di memoria, i contatori dei cicli e l'aritmetica dei puntatori in linguaggi di basso livello come il C si riducono tutti a sottrazioni binarie a livello hardware. Capire lo schema del prestito a cascata spiega anche una classica fonte di bug: l'underflow degli interi senza segno, in cui sottrarre oltre lo zero fa « girare » il valore su un numero molto grande invece di renderlo negativo, perché l'hardware non ha più nessun prestito da propagare.

Ogni sottrazione eseguita da una CPU — dal decremento di un contatore di ciclo al calcolo di un indirizzo di memoria — è in realtà un'addizione in complemento a due.

Come può aiutarti Solvify a verificare il risultato di un calcolatore di sottrazione binaria?

Una volta compresi il prestito diretto e la sottrazione con complemento a due grazie a questa guida, il risolutore basato sull'IA di Solvify può partire dalla foto di un problema di aritmetica binaria — da un compito di informatica, da un esercizio di matematica discreta o da un ripasso per l'esame di logica digitale — e ripercorrere gli stessi passaggi colonna per colonna e di complemento, così puoi confrontare il suo procedimento con il tuo risultato ottenuto a mano e individuare un errore di prestito o di inversione di bit prima che finisca in un compito valutato.

Il modo più rapido per acquisire sicurezza con la sottrazione binaria è risolvere un esercizio a mano e usare il calcolatore solo per verificarlo — non il contrario.
Tag:
computer-sciencecalculatorguide

Ottieni aiuto per i compiti ora

Unisciti a milioni di studenti che usano il nostro risolutore matematico AI. Ottieni soluzioni istantanee, spiegazioni passo-passo e supporto compiti 24/7.

Disponibile su dispositivi iOS e Android