Sistemi di numerazione: esercizi con soluzioni passo passo
Detto anche: sistema binario · sistema esadecimale · conversione di base
Esercizi gratuiti su Sistemi di numerazione con schemi, suggerimenti e soluzioni svolte complete. Valori nuovi ogni volta, su tre livelli: da binario ed esadecimale a decimale, complemento a due, bit, intervalli e memoria.
Esercizio gratuitoFacile
Imposta i bit in modo che il registro a 8 bit contenga 0x99. Qual è il valore N dello schema in decimale?
0x99
Clicca su un bit per passarlo tra 0 e 1. La casella mostra il tuo schema come numero senza segno, e puoi anche digitarlo. Risposta esatta: un numero intero, senza arrotondamenti.
dividi per la base e leggi i resti dal basso verso l’alto
Esadecimale ↔ binario
una cifra esadecimale = 4 bit
Complemento a due
inverti i bit e aggiungi 1
Impara Sistemi di numerazione da zero
1Che cos’è un sistema di numerazione
Nella vita di tutti i giorni conti in decimale, in base 10. Ha dieci cifre, da 0 a 9, e ogni posizione vale dieci volte la posizione alla sua destra.
In 352, il 3 vale 300, il 5 vale 50 e il 2 vale 2. Le posizioni valgono 1, 10, 100 a partire da destra.
352 = 3 · 100 + 5 · 10 + 2 · 1
Un computer memorizza tutto come interruttori accesi o spenti. Quindi conta in binario, in base 2, con le sole cifre 0 e 1.
Una cifra binaria è un bit. Un gruppo di 8 bit è un byte.
La regola è la stessa in ogni base: ogni cifra vale il suo valore per una potenza della base.
Autoverifica Nel numero decimale 4721, quanto vale il 7?
7000
700
70
7
Risposta: 700. Contando da destra, le posizioni valgono 1, 10, 100 e 1000. Il 7 è nella terza posizione, quindi vale 7 · 100 = 700.
2Binario ed esadecimale
In binario le posizioni valgono 1, 2, 4, 8, 16 e così via, da destra. Ogni posizione vale il doppio della posizione alla sua destra.
Per un numero a 8 bit le posizioni valgono 128, 64, 32, 16, 8, 4, 2 e 1.
Per leggere un numero binario, somma i valori posizionali di ogni bit che vale 1. Per 0011 0010 si ha 32 + 16 + 2 = 50.
Lunghe file di bit sono difficili da leggere. I programmatori spesso li scrivono invece in esadecimale (hex), in base 16.
L’esadecimale richiede 16 cifre. Usa da 0 a 9 e poi le lettere A = 10, B = 11, C = 12, D = 13, E = 14 e F = 15.
Le posizioni esadecimali valgono 1, 16, 256 e 4096, da destra. Un numero esadecimale si scrive spesso con 0x davanti, per esempio 0x2F.
Una cifra esadecimale corrisponde esattamente a 4 bit, quindi 0011 0010 è 0x32: 0011 è 3 e 0010 è 2.
Autoverifica Quanto vale 0x1A in decimale?
110
11
161
26
Risposta: 26. A = 10. Le posizioni sono 16 e 1, quindi 1 · 16 + 10 · 1 = 26. Scrivere le cifre una accanto all’altra (110) o sommarle (11) ignora i valori posizionali. 161 usa le posizioni nell’ordine sbagliato.
3Numeri negativi: complemento a due
Un byte con tutte le posizioni positive memorizza da 0 a 255. Si chiama senza segno (unsigned).
Per memorizzare numeri negativi i computer usano il complemento a due. L’unica differenza è che il bit più a sinistra vale −128 invece di +128.
Quindi 1000 0011 è −128 + 2 + 1 = −125. Il bit più a sinistra si chiama bit di segno: quando è 1, il numero è negativo.
Un numero a 8 bit in complemento a due va da −128 (1000 0000) a +127 (0111 1111).
Per scrivere un numero negativo −x, parti da +x in binario, inverti ogni bit (0 diventa 1, 1 diventa 0) e aggiungi 1.
Esempio per −5: 5 è 0000 0101. Invertito è 1111 1010. Aggiungendo 1 si ottiene 1111 1011.
La stessa configurazione letta come senza segno ha il valore 256 − x. Per −5 è 251, e 1111 1011 è proprio 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251.
Autoverifica La configurazione a 8 bit 1111 1111 memorizza un numero in complemento a due. Qual è il suo valore?
255
−127
−128
−1
Risposta: −1. −128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = −1. 255 è la lettura senza segno. −127 deriva dal trattare il primo bit come un segno meno davanti a 111 1111.
4Il metodo passo dopo passo
Da binario o esadecimale a decimale:
Scrivi il valore posizionale sotto ogni cifra: potenze di 2 per il binario, potenze di 16 per l’esadecimale, partendo da 1 a destra.
In esadecimale, sostituisci ogni lettera con il suo valore: da A = 10 fino a F = 15.
Moltiplica ogni cifra per il suo valore posizionale e somma tutto.
Complemento a due:
Per leggere una configurazione, assegna al bit più a sinistra il valore −128 (su 8 bit) e somma i valori posizionali di tutti i bit pari a 1.
Per scrivere −x, scrivi +x su 8 bit, inverti ogni bit e aggiungi 1.
Il valore senza segno di quella configurazione è 256 − x. Usalo per controllare i tuoi bit.
Bit, intervalli e memoria:
n bit danno 2ⁿ configurazioni diverse.
Senza segno memorizzano da 0 a 2ⁿ − 1. In complemento a due memorizzano da −2ⁿ⁻¹ a 2ⁿ⁻¹ − 1.
Per dare a k elementi un proprio codice, trova il più piccolo b tale che 2b ≥ k.
Per la memoria, moltiplica il numero di elementi per i bit per elemento, poi dividi per 8 per i byte e per 1024 per i KiB.
M = larghezza × altezza × bit per pixel / 8 / 1024 (KiB)
5Un esempio svolto
Segui ogni passaggio. Prova a prevedere il successivo prima di aprirlo.
Esempio svolto
La configurazione a 8 bit 1011 0110 memorizza un intero con segno in complemento a due. Qual è il suo valore N in decimale?
1
Scrivi i valori posizionali
In complemento a due la posizione più a sinistra vale −128. Le altre posizioni sono 64, 32, 16, 8, 4, 2 e 1.
2
Guarda il bit di segno
Il bit più a sinistra è 1, quindi il numero è negativo.
3
Somma i bit a 1
I bit a 1 sono nelle posizioni −128, 32, 16, 4 e 2.
N = −128 + 32 + 16 + 4 + 2 = −74
4
Controlla con il valore senza segno
Letta come senza segno, la configurazione è 128 + 32 + 16 + 4 + 2 = 182.
Per un numero negativo il valore senza segno è 256 − x, quindi x = 256 − 182 = 74. Questo dà di nuovo N = −74.
5
Controlla invertendo
Inverti 1011 0110 per ottenere 0100 1001, poi aggiungi 1 per ottenere 0100 1010.
0100 1010 è 64 + 8 + 2 = 74. Quindi la configurazione originale è −74.
Risposta
N = −74
6Errori comuni
Dimenticare di aggiungere 1 dopo aver invertito i bit. Si ottiene un risultato più basso di uno.
Leggere una configurazione in complemento a due come senza segno, per esempio 1111 1111 come 255 invece di −1.
Trattare il bit di segno come un segno meno davanti agli altri bit. In complemento a due vale −128.
Mettere le posizioni nell’ordine sbagliato. La posizione che vale 1 è sempre a destra.
Usare A = 11 in esadecimale. Le lettere partono da A = 10.
Confondere bit e byte nelle domande sulla memoria. Dividi il numero di bit per 8.
Autoverifica Qual è −5 come configurazione a 8 bit in complemento a due?
0000 0101
1000 0101
1111 1010
1111 1011
Risposta: 1111 1011. 5 è 0000 0101. Invertendo si ottiene 1111 1010, e aggiungendo 1 si ottiene 1111 1011. 1111 1010 dimentica di aggiungere 1, e 1000 0101 mette un segno meno davanti a 5.
7Come sono fatte le domande d’esame
Facile: da binario ed esadecimale a decimale. Converti in decimale un numero binario a 8 bit o un numero esadecimale di 3 cifre.
Medio: complemento a due. Leggi il valore di una configurazione con segno a 8 bit, oppure scrivi un numero negativo come configurazione e indica il suo valore senza segno.
Difficile: bit, intervalli e memoria. Il valore massimo o più negativo che sta in n bit, il numero di bit necessari per k codici, oppure la memoria occupata da un’immagine.
Esempio di domanda difficile: un’immagine 256 × 256 con 24 bit per pixel occupa 256 · 256 · 24 / 8 / 1024 = 192 KiB.
Autoverifica Qual è il minimo numero di bit che dà a 375 elementi un proprio codice?
188
512
8
9
Risposta: 9. 2⁸ = 256 codici sono troppo pochi, 2⁹ = 512 bastano, quindi 9 bit. 512 è il numero di codici, non il numero di bit.
Converti il numero esadecimale 0x2BE in decimale. Trova N.
0x2BEA = 10 … F = 15
Calcola N
Mostra i suggerimenti
In esadecimale le posizioni valgono 1, 16, 256, 4096 da destra.
Sostituisci le lettere con il loro valore (A = 10 … F = 15), moltiplica per il peso e somma.
2 = 2, B = 11, E = 14.
Mostra la risposta e la soluzione passo passo
Sistemi di numerazione posizionali: ogni cifra vale il suo valore per una potenza della base. In binario le posizioni valgono 1, 2, 4, 8, 16, …; in esadecimale 1, 16, 256, …, con A–F per 10–15. Nel complemento a due a 8 bit il bit più a sinistra vale −128 invece di +128: così si memorizzano i numeri negativi.
Moltiplica ogni cifra per il suo peso
2·256 + 11·16 + 14·1 = 702
Risposta
0x2BE = 702
Esempio 2Media
Imposta i bit in modo che memorizzino −45 in complemento a due a 8 bit. Letto come numero senza segno, qual è il valore U dello schema?
N = −458 bit
Calcola U
Mostra i suggerimenti
Scrivi 45 in binario, inverti ogni bit, poi aggiungi 1.
45 = 0010 1101₂.
Come numero senza segno lo schema è uguale a 256 + N.
Mostra la risposta e la soluzione passo passo
Impostare i bit: ogni bit vale una potenza di due (128, 64, …, 1). Una cifra esadecimale è esattamente quattro bit, e nel complemento a due a 8 bit il bit più a sinistra vale −128. Le operazioni bit a bit lavorano su ogni posizione di bit separatamente.
Inverti e aggiungi uno
45 = 0010 1101
invertito: 1101 0010
+1 → 1101 0011
Leggilo senza segno
1101 0011₂ = 256 − 45 = 211
Risposta
U = 211
Esempio 3Difficile
Imposta i bit sul risultato a 8 bit di 0111 0001 >> 3. Qual è il valore R del risultato in decimale?
0111 0001>> 3
Calcola R
Mostra i suggerimenti
Scorrere a destra di 3 sposta ogni bit di 3 posizioni verso destra; i bit che escono dall’estremità destra sono persi ed entrano zeri a sinistra.
Lavora una posizione di bit alla volta, da sinistra a destra.
I primi quattro bit del risultato sono 0000.
Mostra la risposta e la soluzione passo passo
Impostare i bit: ogni bit vale una potenza di due (128, 64, …, 1). Una cifra esadecimale è esattamente quattro bit, e nel complemento a due a 8 bit il bit più a sinistra vale −128. Le operazioni bit a bit lavorano su ogni posizione di bit separatamente.
Bit per bit
Scorrere a destra di 3 sposta ogni bit di 3 posizioni verso destra; i bit che escono dall’estremità destra sono persi ed entrano zeri a sinistra.
0111 0001 >> 3
= 0000 1110
Valore del risultato
0000 1110₂ = 14
Risposta
R = 14
Domande e risposte
Sistemi di numerazione: di cosa si tratta?
Nella vita di tutti i giorni conti in decimale, in base 10. Ha dieci cifre, da 0 a 9, e ogni posizione vale dieci volte la posizione alla sua destra.
In 352, il 3 vale 300, il 5 vale 50 e il 2 vale 2. Le posizioni valgono 1, 10, 100 a partire da destra.
Sistemi di numerazione: come si risolvono gli esercizi passo per passo?
Sistemi di numerazione posizionali: ogni cifra vale il suo valore per una potenza della base. In binario le posizioni valgono 1, 2, 4, 8, 16, …; in esadecimale 1, 16, 256, …, con A–F per 10–15. Nel complemento a due a 8 bit il bit più a sinistra vale −128 invece di +128: così si memorizzano i numeri negativi.
Sistemi di numerazione: che cosa si esercita?
Facile: da binario ed esadecimale a decimale
Media: complemento a due
Difficile: bit, intervalli e memoria
Ogni esercizio ha valori nuovi, così impari il metodo invece di una risposta. Bloccato? Apri prima un piccolo suggerimento e la spiegazione completa solo quando ti serve.
Come funziona l’esercitazione
Ogni esercizio ha valori nuovi, così impari il metodo invece di una risposta.
Bloccato? Apri prima un piccolo suggerimento e la spiegazione completa solo quando ti serve.
I tuoi progressi, i tuoi errori e gli esercizi salvati restano memorizzati, così puoi ripassare prima dell’esame.