Esercizi sulle Conversioni Numeriche
In questa pagina puoi metterti alla prova con una serie di problemi ed esercizi di diversa complessità.
Tutte le soluzioni sono nascoste per impostazione predefinita: prova prima a risolverli su carta o a mente, poi clicca su ciascun riquadro per confrontare il tuo risultato con lo svolgimento completo.
Tipologia 1: Interi Positivi e Sistemi di Numerazione
Da Binario a Decimale (Calcolo dei Pesi)
Converti i seguenti numeri binari nel corrispondente valore decimale:
- A)
- B)
- C) (un byte completo a tutti bit 1)
Visualizza la risoluzione
Somma delle potenze accese:
- A) $(10110)_2$:
$16 + 4 + 2 = \mathbf{22}_{10}$. - B) $(1101101)_2$:
$64 + 32 + 8 + 4 + 1 = \mathbf{109}_{10}$. - C) $(11111111)_2$:
$128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 2^8 - 1 = \mathbf{255}_{10}$.
Da Decimale a Binario: Confronto tra Metodi
Converti i seguenti numeri decimali in binario scegliendo la strategia più rapida ed efficiente:
- A) (numero medio-piccolo: provalo con il metodo intuitivo)
- B) (numero grande: valuta le divisioni per 2 o il passaggio per l’esadecimale)
Visualizza la risoluzione
- A) $156_{10}$ (Risoluzione rapida con il Metodo Intuitivo delle Potenze):
Massima potenza contenuta: $128$.- $156 - 128 = 28 \implies$ colonna $128 \to \mathbf{1}$
- $28 < 64 \implies$ colonna $64 \to \mathbf{0}$
- $28 < 32 \implies$ colonna $32 \to \mathbf{0}$
- $28 - 16 = 12 \implies$ colonna $16 \to \mathbf{1}$
- $12 - 8 = 4 \implies$ colonna $8 \to \mathbf{1}$
- $4 - 4 = 0 \implies$ colonna $4 \to \mathbf{1}$
- $0 < 2 \implies$ colonna $2 \to \mathbf{0}$
- $0 < 1 \implies$ colonna $1 \to \mathbf{0}$
- B) $1350_{10}$ (Numero grande: Divisioni per 2 o Scorciatoia Esadecimale):
Strategia 1 (Divisioni successive per 2):
$1350 : 2 = 675 \text{ (r 0)}$; $675 : 2 = 337 \text{ (r 1)}$; $337 : 2 = 168 \text{ (r 1)}$; $168 : 2 = 84 \text{ (r 0)}$;
$84 : 2 = 42 \text{ (r 0)}$; $42 : 2 = 21 \text{ (r 0)}$; $21 : 2 = 10 \text{ (r 1)}$; $10 : 2 = 5 \text{ (r 0)}$;
$5 : 2 = 2 \text{ (r 1)}$; $2 : 2 = 1 \text{ (r 0)}$; $1 : 2 = 0 \text{ (r 1)}$.
Strategia 2 (Scorciatoia: 3 sole divisioni per 16 e quartetti):
$1350 : 16 = 84 \text{ (r 6)}$; $84 : 16 = 5 \text{ (r 4)}$; $5 : 16 = 0 \text{ (r 5)} \implies (546)_{16}$.
Espandendo a 4 bit: $5 \to 0101, \; 4 \to 0100, \; 6 \to 0110$.
Risultato finale: $1350_{10} = \mathbf{10101000110}_2$.
Passaggio Diretto tra Binario ed Esadecimale (Quartetti)
Esegui le seguenti conversioni dirette senza passare per la base 10:
- A)
- B)
- C) (attenzione al numero di bit non multiplo di 4)
Visualizza la risoluzione
- A) $(101111010011)_2$:
Raggruppiamo a 4 bit da destra: $\underbrace{1011}_{\text{B}} \quad \underbrace{1101}_{\text{D}} \quad \underbrace{0011}_{3} \implies \mathbf{(\text{BD3})_{16}}$. - B) $(\text{3F8A})_{16}$:
Espandiamo ogni cifra in 4 bit: $\text{3} \to 0011, \; \text{F} \to 1111, \; 8 \to 1000, \; \text{A} \to 1010 \implies \mathbf{(0011111110001010)_2}$. - C) $(1111000101)_2$:
I bit sono 10. Aggiungiamo due zeri a sinistra: $\underbrace{0011}_{3} \quad \underbrace{1100}_{\text{C}} \quad \underbrace{0101}_{5} \implies \mathbf{(3\text{C}5)_{16}}$.
Conversione tra Basi Generiche Arbitrarie
Converti il numero espresso in base 4 nella corrispondente rappresentazione in base 6.
Visualizza la risoluzione
- Passo 1 (Base 4 $\to$ Base 10):
$$(231)_4 = 2 \cdot 4^2 + 3 \cdot 4^1 + 1 \cdot 4^0 = 2 \cdot 16 + 3 \cdot 4 + 1 = 32 + 12 + 1 = \mathbf{45}_{10}$$ - Passo 2 (Base 10 $\to$ Base 6):
Divisioni successive per 6:- $45 : 6 = 7$ con resto 3 (LSB)
- $7 : 6 = 1$ con resto 1
- $1 : 6 = 0$ con resto 1 (MSB)
Risultato finale: $$(231)_4 = 45_{10} = \mathbf{(113)_6}$$
Sfida: Confronto e Ordinamento tra Basi Diverse
Ordina i seguenti 5 valori dal più piccolo al più grande, motivando i passaggi:
Visualizza la risoluzione
Strategia: Portiamo tutti i valori al ponte comune in Base 10:
- $A = (101110)_2 = 32 + 8 + 4 + 2 = \mathbf{46}_{10}$
- $B = (57)_8 = 5 \cdot 8 + 7 \cdot 1 = 40 + 7 = \mathbf{47}_{10}$
- $C = (2\text{E})_{16} = 2 \cdot 16 + 14 = 32 + 14 = \mathbf{46}_{10}$
- $D = \mathbf{47}_{10}$
- $E = (142)_5 = 1 \cdot 25 + 4 \cdot 5 + 2 = 25 + 20 + 2 = \mathbf{47}_{10}$
Confronto e ordinamento:
$$A = C \; (46) \quad < \quad B = D = E \; (47)$$Tutti i valori corrispondono a soli due numeri decimali ($46$ e $47$).
Batteria Mista di Conversioni tra Basi
Mettiti alla prova con questa serie di conversioni assortite. Le tipologie e le basi sono mescolate: analizza autonomamente ogni caso per scegliere la via più rapida (somma dei pesi, sottrazione di potenze, divisioni successive, quartetti/terzetti diretti o ponte in base 10).
Clicca sulla freccia a lato di ogni conversione per verificare la soluzione e la strategia consigliata:
1. $(110111)_2 \to \text{Base } 10$ Soluzione ▾
Strategia: Somma dei pesi delle potenze di 2 accese ($32 + 16 + 4 + 2 + 1$).
Risultato: $\mathbf{55}_{10}$
2. $74_{10} \to \text{Base } 2$ Soluzione ▾
Strategia: Metodo intuitivo delle potenze ($74 - 64 = 10 \to 10 - 8 = 2 \to 2 - 2 = 0$).
Risultato: $\mathbf{1001010}_2$
3. $(\text{3D})_{16} \to \text{Base } 2$ Soluzione ▾
Strategia: Espansione diretta a 4 bit per cifra ($\text{3} \to 0011, \; \text{D} \to 1101$).
Risultato: $\mathbf{111101}_2$
4. $(101111)_2 \to \text{Base } 16$ Soluzione ▾
Strategia: Raggruppamento a quartetti da destra: $\underbrace{0010}_{2} \ \underbrace{1111}_{\text{F}}$.
Risultato: $\mathbf{(2\text{F})_{16}}$
5. $(43)_5 \to \text{Base } 10$ Soluzione ▾
Strategia: Notazione polinomiale con potenze di 5 ($4 \cdot 5^1 + 3 \cdot 5^0 = 20 + 3$).
Risultato: $\mathbf{23}_{10}$
6. $198_{10} \to \text{Base } 16$ Soluzione ▾
Strategia: Divisioni per 16: $198 : 16 = 12 \text{ (resto 6)} \to 12 \implies \text{C}$.
Risultato: $\mathbf{(\text{C}6)_{16}}$
7. $(101011100)_2 \to \text{Base } 8 \text{ (Ottale)}$ Soluzione ▾
Strategia: Raggruppamento diretto a terzetti (3 bit): $\underbrace{101}_{5} \ \underbrace{011}_{3} \ \underbrace{100}_{4}$.
Risultato: $\mathbf{(534)_8}$
8. $(\text{8A})_{16} \to \text{Base } 10$ Soluzione ▾
Strategia: Moltiplicazione per i pesi esadecimali ($8 \cdot 16 + 10 \cdot 1 = 128 + 10$).
Risultato: $\mathbf{138}_{10}$
9. $(32)_4 \to \text{Base } 2$ Soluzione ▾
Strategia: Espansione diretta a coppie di 2 bit ($3 \to 11, \; 2 \to 10$, poiché $4 = 2^2$).
Risultato: $\mathbf{1110}_2$
10. $115_{10} \to \text{Base } 2$ Soluzione ▾
Strategia: Sottrazione rapida di potenze ($115 - 64 = 51 \to 51 - 32 = 19 \to 19 - 16 = 3 \to 3 - 2 = 1 \to 1 - 1 = 0$).
Risultato: $\mathbf{1110011}_2$
11. $(213)_4 \to \text{Base } 7$ Soluzione ▾
Strategia: Ponte in Base 10. $(213)_4 = 2\cdot 16 + 1\cdot 4 + 3 = 39_{10} \to 39 : 7 = 5 \text{ (resto 4)}$.
Risultato: $\mathbf{(54)_7}$
12. $(72)_8 \to \text{Base } 2$ Soluzione ▾
Strategia: Espansione diretta a terzetti di 3 bit ($7 \to 111, \; 2 \to 010$).
Risultato: $\mathbf{111010}_2$
13. $(\text{F5})_{16} \to \text{Base } 8$ Soluzione ▾
Strategia: Ponte binario: $\text{F5}_{16} \to 1111\ 0101_2 \to$ raggruppamento a 3 bit: $\underbrace{011}_{3} \ \underbrace{110}_{6} \ \underbrace{101}_{5}$.
Risultato: $\mathbf{(365)_8}$
14. $45_{10} \to \text{Base } 3$ Soluzione ▾
Strategia: Divisioni successive per 3: $45:3=15\text{ (r 0)} \to 15:3=5\text{ (r 0)} \to 5:3=1\text{ (r 2)} \to 1:3=0\text{ (r 1)}$.
Risultato: $\mathbf{(1200)_3}$
15. $(1001001)_2 \to \text{Base } 10$ Soluzione ▾
Strategia: Somma potenze di 2 accese ($64 + 8 + 1$).
Risultato: $\mathbf{73}_{10}$
16. $(321)_6 \to \text{Base } 10$ Soluzione ▾
Strategia: Notazione polinomiale in base 6 ($3 \cdot 36 + 2 \cdot 6 + 1 = 108 + 12 + 1$).
Risultato: $\mathbf{121}_{10}$
17. $250_{10} \to \text{Base } 16$ Soluzione ▾
Strategia: Divisioni per 16: $250 : 16 = 15 \text{ (resto 10} \implies \text{A)} \to 15 \implies \text{F}$.
Risultato: $\mathbf{(\text{FA})_{16}}$
18. $(101101111)_2 \to \text{Base } 16$ Soluzione ▾
Strategia: Raggruppamento a quartetti da destra: $\underbrace{0001}_{1} \ \underbrace{0110}_{6} \ \underbrace{1111}_{\text{F}}$.
Risultato: $\mathbf{(16\text{F})_{16}}$
Tipologia 2: Numeri Frazionari (con la Virgola) e Periodici
Da Binario con la Virgola a Decimale
Converti i seguenti numeri binari con la virgola nel formato decimale:
- A)
- B)
- C)
Visualizza la risoluzione
- A) $(11.101)_2$:
Parte intera: $2 + 1 = 3$. Parte frazionaria: $0.5 + 0.125 = 0.625$. $\implies \mathbf{3.625}_{10}$. - B) $(0.011)_2$:
Parte frazionaria: $0.25 + 0.125 = \mathbf{0.375}_{10}$. - C) $(1010.0001)_2$:
Parte intera: $8 + 2 = 10$. Parte frazionaria: $2^{-4} = \frac{1}{16} = 0.0625$. $\implies \mathbf{10.0625}_{10}$.
Da Decimale con la Virgola a Binario (Moltiplicazioni)
Converti il numero decimale in binario, calcolando separatamente la parte intera e la parte frazionaria.
Visualizza la risoluzione
- Parte intera ($18_{10}$): $18 = 16 + 2 \implies \mathbf{10010}_2$.
- Parte frazionaria ($0.3125_{10}$):
- $0.3125 \times 2 = \mathbf{0}.625 \implies$ cifra 0
- $0.625 \times 2 = \mathbf{1}.25 \implies$ cifra 1
- $0.25 \times 2 = \mathbf{0}.5 \implies$ cifra 0
- $0.5 \times 2 = \mathbf{1}.0 \implies$ cifra 1 (frazione residua = 0, fine)
Risultato finale: $$18.3125_{10} = \mathbf{(10010.0101)_2}$$
Riconoscimento del Periodo in Binario
Converti la frazione decimale in binario. Individua l’eventuale antiperiodo, la sequenza periodica e spiega il punto esatto di arresto del calcolo.
Visualizza la risoluzione
Eseguiamo le moltiplicazioni per 2:
- Passo 1: $\mathbf{0.6} \times 2 = \mathbf{1}.2 \implies$ cifra 1 (entra la frazione $0.2$)
- Passo 2: $0.2 \times 2 = \mathbf{0}.4 \implies$ cifra 0
- Passo 3: $0.4 \times 2 = \mathbf{0}.8 \implies$ cifra 0
- Passo 4: $0.8 \times 2 = \mathbf{1}.\mathbf{6} \implies$ cifra 1 (avanza di nuovo la frazione $0.6$!)
- Passo 5: $\mathbf{0.6} \times 2 = \mathbf{1}.2 \implies$ 🛑 STOP: abbiamo ritrovato $0.6$ già calcolato al Passo 1.
Non c'è antiperiodo e il periodo è composto dalle 4 cifre 1001:
Conversione Frazionaria Diretta tra Binario ed Esadecimale
Converti i seguenti numeri:
- A)
- B)
Visualizza la risoluzione
- A) $(11010.11)_2$:
- Parte intera: raggruppiamo a sinistra $\underbrace{0001}_{1} \quad \underbrace{1010}_{\text{A}} \implies 1\text{A}_{16}$.
- Parte frazionaria: raggruppiamo a destra aggiungendo due zeri $\underbrace{.1100}_{\text{C}} \implies .\text{C}_{16}$.
- Risultato: $(11010.11)_2 = \mathbf{(1\text{A.C})_{16}}$.
- B) $(\text{A.4E})_{16}$:
- $\text{A} \to 1010$, $4 \to 0100$, $\text{E} \to 1110$.
- Risultato: $(\text{A.4E})_{16} = \mathbf{(1010.01001110)_2}$.
Sfida: Diagnosi di un Errore nei Calcoli Floating-Point
Un programma bancario deve accreditare una commissione fissa pari a € su ogni transazione. Dopo 5 transazioni, il software confronta se il saldo commissioni è esattamente uguale a € tramite l’istruzione:
if (totale == 1.0) ...
Tuttavia, il test fallisce inaspettatamente.
- Spiega dal punto di vista della codifica binaria perché il numero non può essere rappresentato in modo esatto in memoria.
- Mostra le prime 8 cifre binarie dopo la virgola del numero .
Visualizza la risoluzione
- Causa dell'errore:
Una frazione decimale può essere finita in binario solo se il suo denominatore ridotto ai minimi termini è una potenza di 2 ($2, 4, 8, 16 \dots$). Poiché $0.20 = \frac{1}{5}$ e il denominatore contiene il fattore 5, in binario il numero diventa **periodico illimitato**. La CPU, disponendo di un numero finito di bit (es. 32 bit per i `float`), è costretta a troncare la sequenza, introducendo un micro-errore di arrotondamento ad ogni operazione. - Calcolo della sequenza binaria di $0.20_{10}$:
- $0.2 \times 2 = \mathbf{0}.4 \implies 0$
- $0.4 \times 2 = \mathbf{0}.8 \implies 0$
- $0.8 \times 2 = \mathbf{1}.6 \implies 1$
- $0.6 \times 2 = \mathbf{1}.2 \implies 1$
- $0.2 \times 2 = \mathbf{0}.4 \implies 0$ (ritorna 0.2, inizio ripetizione del periodo $0011$)
Tipologia 3: Interi con Segno, Complemento a 2 e Overflow
Codifica di Numeri Negativi su 8 bit
Rappresenta ciascuno dei seguenti numeri interi in complemento a 2 su 8 bit:
- A)
- B)
- C)
Visualizza la risoluzione
- A) $-58_{10}$ (Metodo classico: Inversione $+ 1$):
$+58_{10} = 00111010_2 \implies$ Invertiamo: $11000101 \implies +1 = \mathbf{11000110}_2$. - B) $-72_{10}$ (Scorciatoia da destra a sinistra):
$+72_{10} = 01001000_2$. Ricopiamo invariati gli zeri fino al primo 1 (`...1000`) e invertiamo la parte restante a sinistra (`0100` $\to$ `1011`): Risultato: $\mathbf{10111000}_2$. - C) $-1_{10}$ (Il massimo negativo):
$+1_{10} = 00000001_2 \implies$ Invertiamo: $11111110 \implies +1 = \mathbf{11111111}_2$. *(In complemento a 2 tutti i bit a 1 rappresentano sempre il valore $-1$).*
Lettura Diretta del Valore con il Peso Negativo
Senza applicare l’inversione e il , calcola direttamente a mente o con un solo passaggio di somma il valore decimale rappresentato dalle seguenti sequenze a 8 bit in complemento a 2:
- A)
- B)
- C)
Visualizza la risoluzione
Regola: Il bit più a sinistra ha peso $\mathbf{-128}$, gli altri bit conservano i pesi positivi ($+64, +32, +16, +8, +4, +2, +1$).
- A) $11100101_2$:
$V = -128 + 64 + 32 + 4 + 1 = -128 + 101 = \mathbf{-27}_{10}$. - B) $10000001_2$:
$V = -128 + 1 = \mathbf{-127}_{10}$. - C) $01101100_2$:
Il bit di segno è $0$, quindi il numero è positivo:
$V = 64 + 32 + 8 + 4 = \mathbf{+108}_{10}$.
Sottrazione Binaria ed Eliminazione del Riporto
Esegui su 8 bit la sottrazione trasformandola nell’addizione binaria .
Mostra la somma in colonna e commenta il comportamento del riporto sul nono bit.
Visualizza la risoluzione
- $+35_{10} = 32 + 2 + 1 = \mathbf{00100011}_2$.
- $+19_{10} = 00010011_2 \implies -19_{10} = \mathbf{11101101}_2$ (complemento a 2).
- Eseguiamo la somma in colonna a 8 bit:
00100011 (+35) +
11101101 (-19) =
──────────
(1)00010000 (+16)
Il nono bit di riporto (1) generato a sinistra viene scartato perché il registro è a 8 bit. Il valore risultante a 8 bit è $00010000_2 = \mathbf{+16}_{10}$, perfettamente conforme all'operazione algebrica $35 - 19 = 16$.
Diagnosi e Rilevamento dell’Overflow
Determina per ciascuna delle seguenti operazioni tra numeri a 8 bit con segno (intervallo ) se si verifica una condizione di overflow, specificandone la tipologia:
- A)
- B)
- C)
- D)
Visualizza la risoluzione
- A) $(+85) + (+60) = +145$:
Poiché $+145 > +127$, sfora il limite superiore. In binario la somma dà un bit di segno1(la CPU legge $-111$).
Esito: OVERFLOW POSITIVO. - B) $(-90) + (-50) = -140$:
Poiché $-140 < -128$, scende sotto il limite inferiore. In binario la somma dà un bit di segno0(la CPU legge $+116$).
Esito: OVERFLOW NEGATIVO. - C) $(+100) + (-40) = +60$:
I segni sono discordi: l'operazione equivale a una differenza. Il risultato $+60$ è compreso in $[-128, +127]$.
Esito: NESSUN OVERFLOW (la somma di numeri di segno opposto non può mai causare overflow). - D) $(-64) + (-64) = -128$:
Il valore $-128$ coincide esattamente con il valore minimo rappresentabile a 8 bit ($10000000_2$).
Esito: NESSUN OVERFLOW (il risultato è esattamente al limite estremo, ma ancora rappresentabile).
Sfida: Il Bug del Contatore di Punti (Scenario Reale)
In un videogioco arcade rétro, il punteggio della partita è memorizzato in una variabile a 8 bit con segno (int8_t).
Un giocatore ha accumulato punti e raccoglie un bonus da punti.
- Quale valore numerico compare improvvisamente sullo schermo del giocatore dopo aver raccolto il bonus?
- Mostra la somma binaria eseguita dal processore e spiega quale flag di stato della CPU viene attivato.
- Come avrebbe dovuto dichiarare la variabile lo sviluppatore per evitare questo bug mantenendo l’occupazione di 1 solo byte?
Visualizza la risoluzione
- Valore visualizzato a schermo:
Il giocatore vedrà comparire il punteggio **$-116$**! - Analisi binaria della CPU:
$+120_{10} = 01111000_2$
$+20_{10} = 00010100_2$
Somma in colonna:
La somma di due valori positivi ha invaso il bit di segno $b_7$, attivando il **flag di Overflow (OF)** della CPU.01111000 (+120) + 00010100 (+20) = ────────── 10001100 (Bit di segno 1: la CPU legge -128 + 8 + 4 = -116) - Soluzione corretta:
Dichiarare la variabile come intero senza segno (`uint8_t` / `unsigned char`), il cui intervallo su 8 bit va da $0$ a $+255$, consentendo di gestire agevolmente $140$ punti in un solo byte.
Batteria Mista di Operazioni in Complemento a 2
Esegui ciascuna delle seguenti operazioni tra numeri interi con segno su 8 bit (intervallo ):
- Se l’operazione è una sottrazione , trasformala nell’addizione calcolando il complemento a 2 del secondo termine.
- Esegui la somma binaria in colonna a 8 bit e scarta l’eventuale 9° bit di riporto finale.
- Verifica infine il risultato riconvertendo la sequenza binaria ottenuta in decimale (usando il peso sul bit di segno) per confermare la correttezza del calcolo e diagnosticare eventuali condizioni di Overflow.
1. $(+42) + (+25)$ Soluzione ▾
1. Codifica a 8 bit: $+42_{10} = 00101010_2$, $+25_{10} = 00011001_2$
2. Somma in colonna: $00101010 + 00011001 = \mathbf{00111101}_2$
3. Verifica decimale: $32 + 16 + 8 + 4 + 1 = \mathbf{+67}_{10}$ (Conforme a $42 + 25 = 67$, nessun overflow).
2. $(+58) - (+23)$ Soluzione ▾
1. Trasformazione: $+58 + (-23)$. $+58 = 00111010_2$; $+23 = 00010111_2 \implies -23 = 11101001_2$
2. Somma in colonna: $00111010 + 11101001 = (1)\mathbf{00100011}_2$ (9° bit scartato)
3. Verifica decimale: $32 + 2 + 1 = \mathbf{+35}_{10}$ (Conforme a $58 - 23 = 35$, nessun overflow).
3. $(+19) - (+45)$ Soluzione ▾
1. Trasformazione: $+19 + (-45)$. $+19 = 00010011_2$; $+45 = 00101101_2 \implies -45 = 11010011_2$
2. Somma in colonna: $00010011 + 11010011 = \mathbf{11100110}_2$
3. Verifica decimale: $-128 + 64 + 32 + 4 + 2 = \mathbf{-26}_{10}$ (Conforme a $19 - 45 = -26$, nessun overflow).
4. $(-30) + (-40)$ Soluzione ▾
1. Codifica a 8 bit: $-30 = 11100010_2$, $-40 = 11011000_2$
2. Somma in colonna: $11100010 + 11011000 = (1)\mathbf{10111010}_2$ (9° bit scartato)
3. Verifica decimale: $-128 + 32 + 16 + 8 + 2 = \mathbf{-70}_{10}$ (Conforme a $-30 + (-40) = -70$, nessun overflow).
5. $(-15) - (+28)$ Soluzione ▾
1. Trasformazione: $-15 + (-28)$. $-15 = 11110001_2$, $-28 = 11100100_2$
2. Somma in colonna: $11110001 + 11100100 = (1)\mathbf{11010101}_2$ (9° bit scartato)
3. Verifica decimale: $-128 + 64 + 16 + 4 + 1 = \mathbf{-43}_{10}$ (Conforme a $-15 - 28 = -43$, nessun overflow).
6. $(+75) + (+65)$ Soluzione ▾
1. Codifica a 8 bit: $+75_{10} = 01001011_2$, $+65_{10} = 01000001_2$
2. Somma in colonna: $01001011 + 01000001 = \mathbf{10001100}_2$
3. Diagnosi: Il risultato teorico $+140$ supera $+127$. Il bit di segno diventa $1$, la CPU legge $-128 + 8 + 4 = \mathbf{-116}_{10}$. $\implies$ ⚠️ OVERFLOW POSITIVO!
7. $(-80) + (-60)$ Soluzione ▾
1. Codifica a 8 bit: $-80_{10} = 10110000_2$, $-60_{10} = 11000100_2$
2. Somma in colonna: $10110000 + 11000100 = (1)\mathbf{01110100}_2$
3. Diagnosi: Il risultato teorico $-140$ è inferiore a $-128$. Il bit di segno diventa $0$, la CPU legge $64 + 32 + 16 + 4 = \mathbf{+116}_{10}$. $\implies$ ⚠️ OVERFLOW NEGATIVO!
8. $(+90) - (-18)$ Soluzione ▾
1. Trasformazione: $+90 - (-18) = +90 + (+18)$. $+90 = 01011010_2$, $+18 = 00010010_2$
2. Somma in colonna: $01011010 + 00010010 = \mathbf{01101100}_2$
3. Verifica decimale: $64 + 32 + 8 + 4 = \mathbf{+108}_{10}$ (Conforme a $90 - (-18) = 108$, nessun overflow).
9. $(-100) - (-45)$ Soluzione ▾
1. Trasformazione: $-100 - (-45) = -100 + (+45)$. $-100 = 10011100_2$, $+45 = 00101101_2$
2. Somma in colonna: $10011100 + 00101101 = \mathbf{11001001}_2$
3. Verifica decimale: $-128 + 64 + 8 + 1 = \mathbf{-55}_{10}$ (Conforme a $-100 - (-45) = -55$, nessun overflow).
10. $(+64) - (+64)$ Soluzione ▾
1. Trasformazione: $+64 + (-64)$. $+64 = 01000000_2$, $-64 = 11000000_2$
2. Somma in colonna: $01000000 + 11000000 = (1)\mathbf{00000000}_2$ (9° bit scartato)
3. Verifica decimale: $\mathbf{0}_{10}$ (Conforme a $64 - 64 = 0$, nessun overflow).