Sistemi di numerazione: binario, decimale ed esadecimale
1) Le due tabelle che ti servono adesso
2) Il sistema posizionale: perché 347 vale trecentoquarantasette
3) Perché il computer usa il binario (e perché non base 3)
4) Da binario a decimale
5) Da decimale a binario
6) L'esadecimale (e l'ottale in due minuti)
7) Bit, byte, multipli e quanti numeri ci stanno
8) Aritmetica binaria: somma, sottrazione e traboccamento
9) Gli errori che ti fanno perdere punti
10) Esercizi: prova tu
11) Domande frequenti
12) Conclusioni
Le due tabelle che ti servono adesso
Le potenze di 2. Impara a memoria almeno fino a 1.024. Non è un capriccio: ogni conversione da o verso il binario è una somma di questi numeri.
| Potenza | Valore | Potenza | Valore |
|---|---|---|---|
| 2⁰ | 1 | 2⁹ | 512 |
| 2¹ | 2 | 2¹⁰ | 1.024 |
| 2² | 4 | 2¹¹ | 2.048 |
| 2³ | 8 | 2¹² | 4.096 |
| 2⁴ | 16 | 2¹³ | 8.192 |
| 2⁵ | 32 | 2¹⁴ | 16.384 |
| 2⁶ | 64 | 2¹⁵ | 32.768 |
| 2⁷ | 128 | 2¹⁶ | 65.536 |
| 2⁸ | 256 |
La tabella 0-15. È l'altra metà del lavoro. Quattro bit stanno esattamente in una cifra esadecimale, e questa tabella è il dizionario che traduce fra i due mondi.
| Decimale | Binario (4 bit) | Esadecimale |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
Tre regole di lettura da fissare subito, prima di qualunque conto.
1)
10₂ si legge "uno-zero", mai "dieci". E vale due. Se lo leggi "dieci" hai già perso.2) Il pedice della base si scrive sempre:
10₂, 10₁₀, 10₁₆ sono tre numeri diversi. Un 10 senza pedice non significa niente.3) Le cifre sono le stesse, cambia il patto su cosa significano. Cambiare base non cambia il numero: cambia solo come lo scrivi.
L'albero decisionale delle conversioni, cioè quale strada prendere in verifica senza perdere minuti.
• Binario → decimale: somma dei pesi (sezione 4).
• Decimale → binario: divisioni successive per 2 (sezione 5).
• Binario ↔ esadecimale: gruppi di 4 bit da destra, mai passando dal decimale (sezione 6).
• Decimale → esadecimale: conviene passare per il binario, oppure divisioni successive per 16.
• Binario ↔ ottale: gruppi di 3 bit, stesso identico principio.
Pubblicità
Il sistema posizionale: perché 347 vale trecentoquarantasette
Comincia da un numero che sai già leggere. Prendi 347. Tu credi che 347 "sia" trecentoquarantasette, come se il nome fosse attaccato al simbolo. Non è così: 347 è una scrittura compressa di una somma.
| Peso | 100 | 10 | 1 |
|---|---|---|---|
| Potenza | 10² | 10¹ | 10⁰ |
| Cifra | 3 | 4 | 7 |
347 = 3 × 100 + 4 × 10 + 7 × 1 = 3 × 10² + 4 × 10¹ + 7 × 10⁰
Questa è la struttura di ogni sistema di numerazione posizionale: ogni cifra ha un peso che dipende dalla posizione che occupa, e il peso è una potenza della base. Se le potenze non ti sono chiarissime, vale la pena ripassarle prima di andare avanti, perché qui sono ovunque: trovi tutto nella guida sulle potenze.
Due cose da notare, perché reggono tutto il resto:
• le posizioni si contano da destra e si parte da zero. La colonna più a destra è 10⁰ = 1, non 10. Questo è l'errore singolo più frequente in assoluto quando si passa al binario;
• le cifre disponibili vanno sempre da 0 a base − 1. In base 10 sono dieci: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Il 10 non è una cifra, è già un numero scritto con due cifre.
Il nome che ti chiederà il prof. Scrivere un numero come somma di cifra × peso si chiama notazione polinomiale (o forma polinomiale), e sui libri italiani la regola generale porta il nome di Teorema Fondamentale della Numerazione, TFN. Dice questo: un numero scritto con le cifre cₙ … c₁ c₀ in base b vale
cₙ × bⁿ + … + c₁ × b¹ + c₀ × b⁰
Tutto qui. Non c'è una formula per il binario e una per l'esadecimale: c'è una sola formula, e al posto di b metti la base che ti serve. La cifra più a sinistra si chiama cifra più significativa, quella più a destra meno significativa; in binario si dice MSB (bit più significativo) e LSB (bit meno significativo).
Un sistema che invece non è posizionale. I numeri romani. In XIV la X vale dieci ovunque la metti, e il valore complessivo si ottiene sommando (e a volte sottraendo) i simboli, non moltiplicandoli per un peso. Sistemi così si chiamano additivi. Prova a fare una moltiplicazione in numeri romani e capisci al volo perché il mondo è passato al posizionale.
Il momento chiave: quando le cifre finiscono. Il contachilometri della macchina arriva a 999 e poi? Non esiste un simbolo per "mille": le cifre della base 10 sono finite. Allora tutte le colonne si azzerano e ne scatta una nuova a sinistra: 1000.
Il binario fa esattamente la stessa cosa, solo che le cifre finiscono molto prima. Ne hai due, 0 e 1. Conti: 0, 1, e poi? Le cifre sono finite. Azzeri e scatti a sinistra:
10. Poi 11. Finite di nuovo: 100.Non è una regola nuova, è la stessa regola applicata prima. E da qui esce una regolarità che vale la pena tenere in testa:
10 in qualunque base vale esattamente una volta la base. 10₂ = 2, 10₈ = 8, 10₁₀ = 10, 10₁₆ = 16.Contare da 0 a 16 nelle quattro basi. Guarda in quali momenti diversi scattano le colonne: è lì che si capisce il meccanismo.
| Decimale | Binario | Ottale | Esadecimale |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
Il binario scatta ogni due, l'ottale ogni otto, l'esadecimale ogni sedici. Stessa regola, ritmo diverso.
Perché il computer usa il binario (e perché non base 3)
Prima cosa: il binario non è una lingua. È un modo di scrivere i numeri, esattamente come il decimale.
1011₂ e 11₁₀ sono lo stesso numero, scritto con due alfabeti diversi, come "undici" ed "eleven". Non c'è nessuna informazione nascosta nelle sequenze di zeri e uno, non è un codice segreto e non è "la lingua delle macchine": quella è roba da film.La prova storica che chiude il discorso: l'ENIAC, il calcolatore elettronico degli anni Quaranta, era una macchina decimale. Contava con dieci stati, non con due. Funzionava: era solo più scomoda e più fragile da costruire. Se il binario fosse davvero "la lingua dei computer", una macchina decimale sarebbe stata impossibile. Quindi la scelta del binario è una decisione ingegneristica, e ha un motivo preciso.
Il motivo vero: nessun filo porta esattamente 5 volt. Un cavo che dovrebbe trasportare 5 V non ne trasporta mai 5,000: c'è rumore elettrico, calore, interferenze, cadute di tensione. Quindi ai circuiti non si chiede di riconoscere un valore esatto, si chiede di riconoscere un intervallo.
Guarda i numeri di una famiglia logica classica a 5 V (i valori sono quelli della logica TTL, documentati fra gli altri nella guida "Logic Levels" di SparkFun Electronics):
| Sigla | Cosa vuol dire | Valore |
|---|---|---|
| V(OH) | tensione minima che il chip emette per dire "1" | 2,7 V |
| V(IH) | tensione minima che il chip accetta come "1" | 2,0 V |
| V(IL) | tensione massima che il chip accetta come "0" | 0,8 V |
| V(OL) | tensione massima che il chip emette per dire "0" | 0,4 V |
Leggile in coppia. Chi parla dice "1" mandando almeno 2,7 V; chi ascolta considera "1" già a partire da 2,0 V. In mezzo restano 0,7 V di margine: il segnale può sporcarsi di sette decimi di volt lungo il cavo e il messaggio arriva ancora giusto. Sotto, per lo zero: chi parla scende sotto 0,4 V, chi ascolta accetta come "0" tutto ciò che sta sotto 0,8 V, e il margine è 0,8 − 0,4 = 0,4 V. Questo cuscinetto si chiama margine di rumore.
Fra 0,8 V e 2,0 V c'è la zona proibita: lì il valore non è definito e il circuito può oscillare a caso fra alto e basso. Il segnale non deve fermarsi lì, se non per l'istante della transizione.
E adesso la domanda intelligente: perché non base 3? Perché non dieci livelli di tensione, uno per cifra? Perché quei margini si stringono. Su un'alimentazione da 5 V, dieci livelli distinti lascerebbero mezzo volt a testa, margini inclusi: una fluttuazione da mezzo volt — che è normalissima — ti cambierebbe la cifra. Con due soli stati, ogni valore ha metà scala tutta per sé. Il binario non è stato scelto perché è elegante: è stato scelto perché è quello che sopravvive al rumore. In più, i circuiti che distinguono due sole cose sono più semplici, piccoli e veloci.
L'analogia giusta è l'interruttore della luce: acceso o spento lo capisci anche al buio, senza sbagliare. "Acceso al trenta per cento" no.
Tre date, se ti chiedono la parte storica.
• 1703 — Leibniz. Gottfried Wilhelm Leibniz presenta agli atti dell'Académie Royale des Sciences la memoria Explication de l'arithmétique binaire, qui se sert des seuls caractères 0 & 1: "che si serve dei soli caratteri 0 e 1". Nel 1703, senza elettricità e senza transistor. Ci lavorava già dal 1679.
• 1890 — Hollerith. Herman Hollerith fa spogliare il censimento americano con schede perforate: foro o non-foro, l'ago passa e chiude un circuito oppure no. È il bit prima dell'elettronica, e si vede a occhio nudo. La sua azienda diventerà IBM.
• 1937 — Shannon. Claude Shannon, ventunenne, presenta al MIT la tesi di master A Symbolic Analysis of Relay and Switching Circuits (pubblicata poi nel 1938 sulle Transactions of the American Institute of Electrical Engineers). Dimostra che l'algebra a due valori di Boole descrive esattamente il comportamento dei relè: vero/falso, chiuso/aperto, 1/0. È il ponte fra la matematica e l'hardware.
Da binario a decimale
È la conversione più facile e si fa in un modo solo: somma dei pesi.
Il metodo, in tre mosse.
1) Scrivi i pesi sopra le cifre, partendo da destra con 1 e raddoppiando verso sinistra: 1, 2, 4, 8, 16, 32, 64, 128… Falli prima di iniziare i conti, non mentre li fai.
2) Somma solo i pesi delle colonne che hanno un 1. Gli zeri li salti: non aggiungono niente e ogni operazione in meno è un errore in meno.
3) Il risultato è il numero in decimale.
Esercizio svolto 1: quanto vale
1011₂?| Peso | 8 | 4 | 2 | 1 |
|---|---|---|---|---|
| Potenza | 2³ | 2² | 2¹ | 2⁰ |
| Cifra | 1 | 0 | 1 | 1 |
Prendo i pesi con la cifra 1: 8 + 2 + 1 = 11. Quindi
1011₂ = 11₁₀.Scritto in notazione polinomiale, come lo vuole il libro: 1 × 2³ + 0 × 2² + 1 × 2¹ + 1 × 2⁰ = 8 + 0 + 2 + 1 = 11.
Esercizio svolto 2:
101101₂.| Peso | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|
| Potenza | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
| Cifra | 1 | 0 | 1 | 1 | 0 | 1 |
32 + 8 + 4 + 1 = 45. Tienilo a mente: questo 45 torna nelle sezioni 5 e 6.
Esercizio svolto 3:
10011010₂.| Peso | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| Cifra | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
128 + 16 + 8 + 2 = 154.
Tre controlli che costano dieci secondi.
• Parità. Se il binario finisce per 0, il decimale è pari; se finisce per 1, è dispari. In
10011010₂ l'ultima cifra è 0 e infatti 154 è pari. Se ti esce un dispari, hai sbagliato qualcosa.• Ordine di grandezza. Con 8 bit non puoi superare 255. Se convertendo un numero di 8 bit ti esce 300, il conto è sbagliato di sicuro.
• Conta i bit prima di partire. Nelle stringhe lunghe con tanti zeri, tipo
100001, è facilissimo contarne uno di meno e sfalsare tutti i pesi. Conta le cifre, scrivi i pesi, poi somma.Da decimale a binario
Il metodo: divisioni successive per 2. Dividi il numero per 2, annoti il resto (che può essere solo 0 o 1), poi dividi per 2 il quoziente, e vai avanti finché il quoziente non diventa 0. L'ultima divisione è sempre 1 ÷ 2 = 0 con resto 1.
Usa una tabella con le intestazioni scritte, non lo schemino a scaletta senza etichette: confondere quoziente e resto è un classico.
Esercizio svolto 1: 45 in binario.
| Numero | ÷ 2 → quoziente | Resto |
|---|---|---|
| 45 | 22 | 1 |
| 22 | 11 | 0 |
| 11 | 5 | 1 |
| 5 | 2 | 1 |
| 2 | 1 | 0 |
| 1 | 0 | 1 |
Ora la parte in cui sbagliano tutti. L'ultimo resto che hai calcolato è la prima cifra che scrivi. I resti, nell'ordine in cui li hai ottenuti, sono 1, 0, 1, 1, 0, 1; letti dall'ultimo al primo danno
101101₂. Ed è giusto: nella sezione 4 avevamo trovato che 101101₂ vale 45.Attenzione a un tranello di questo esempio: i resti di 45 sono simmetrici, quindi leggendoli nei due versi esce lo stesso numero. È un caso fortunato che nasconde l'errore. Nell'esempio qui sotto il verso conta eccome.
Perché i resti si leggono al contrario. Nessuno te lo spiega mai, e per questo l'errore si ripete. Quando dividi per 2, il resto ti dice se il numero è pari o dispari: cioè ti dice la cifra delle unità, il bit più a destra, l'LSB. La divisione successiva lavora su quello che rimane dopo aver tolto quella cifra, quindi produce la cifra della posizione dopo. Ogni divisione sale di una posizione verso sinistra. Risultato: produci le cifre dalla meno significativa alla più significativa, cioè nell'ordine opposto a quello in cui si scrivono.
Nota che l'istruzione "leggi i resti dal basso verso l'alto" funziona solo se hai impaginato le divisioni in verticale come qui sopra. Se le scrivi in fila su una riga, "dal basso" non significa niente. La formulazione logica — l'ultimo resto calcolato è la prima cifra — funziona sempre, comunque tu abbia disposto il foglio.
Esercizio svolto 2: 154 in binario.
| Numero | ÷ 2 → quoziente | Resto |
|---|---|---|
| 154 | 77 | 0 |
| 77 | 38 | 1 |
| 38 | 19 | 0 |
| 19 | 9 | 1 |
| 9 | 4 | 1 |
| 4 | 2 | 0 |
| 2 | 1 | 0 |
| 1 | 0 | 1 |
Dall'ultimo al primo: 1, 0, 0, 1, 1, 0, 1, 0 →
10011010₂. Verifica: 128 + 16 + 8 + 2 = 154. Torna.Esercizio svolto 3: 200 in binario.
| Numero | ÷ 2 → quoziente | Resto |
|---|---|---|
| 200 | 100 | 0 |
| 100 | 50 | 0 |
| 50 | 25 | 0 |
| 25 | 12 | 1 |
| 12 | 6 | 0 |
| 6 | 3 | 0 |
| 3 | 1 | 1 |
| 1 | 0 | 1 |
Dall'ultimo al primo:
11001000₂. Verifica: 128 + 64 + 8 = 200. Torna.I due controlli gratis.
1) Il risultato comincia sempre per 1. Sempre, senza eccezioni, perché l'ultima divisione è per forza 1 ÷ 2 con resto 1. Se il tuo numero comincia per 0, hai letto i resti nel verso sbagliato: riscrivili al contrario e sei a posto.
2) Riconverti. Somma i pesi delle posizioni con 1 e vedi se ritrovi il numero di partenza. Costa venti secondi e ti dice con certezza se hai preso i punti.
Il metodo veloce, per numeri piccoli. Invece di dividere, sottrai le potenze di 2. Prendi 45: la potenza di 2 più grande che ci sta dentro è 32, resta 13; in 13 ci sta 8, resta 5; in 5 ci sta 4, resta 1; in 1 ci sta 1, resta 0. Hai usato 32, 8, 4, 1 → metti 1 in quelle colonne e 0 nelle altre (16 e 2) →
101101₂. Stesso risultato, meno scritture. Nota di metodo: il prof potrebbe pretendere le divisioni, perché valuta il procedimento. Usa questo per controllare, non per consegnare.E lo stesso schema vale per qualunque base: si divide sempre per la base di arrivo. Per l'esadecimale dividi per 16, per l'ottale per 8. Non sono tre procedure da imparare, è una sola.
L'esadecimale (e l'ottale in due minuti)
Perché esistono le lettere. La base 16 ha bisogno di sedici simboli, uno per ogni valore da 0 a 15. Di simboli numerici ne abbiamo dieci. Servono sei simboli in più, e invece di inventarne di nuovi si sono prese le prime sei lettere. Quindi, e va detto chiaro: A, B, C, D, E, F sono cifre, non lettere.
Sono sedici in tutto: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Con A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Attenzione a non fermarti alla D, è un errore documentato: nello studio di Herman, Loui e Zilles pubblicato su Computer Science Education nel 2011 uno degli studenti intervistati descrive l'esadecimale come "uguale al decimale tranne A, B, C e D", dimenticandosi E ed F.
L'esadecimale è un sistema posizionale come tutti gli altri. Questa parte viene prima della scorciatoia, e non è un dettaglio didattico: gli stessi autori mostrano che gli studenti che conoscono solo il trucco dei quattro bit crollano appena la domanda cambia forma. I pesi sono le potenze di 16:
| Peso | 4096 | 256 | 16 | 1 |
|---|---|---|---|---|
| Potenza | 16³ | 16² | 16¹ | 16⁰ |
Controesempio da guardare bene:
2B₁₆ NON fa 31.Il ragionamento sbagliato è questo: "il 2 vale venti, la B vale 11, quindi 20 + 11 = 31". È sbagliato perché il 2 non sta nella colonna delle decine — le decine in base 16 non esistono. Sta nella colonna dei sedici.
Ragionamento giusto: 2 × 16 + 11 × 1 = 32 + 11 = 43.
Nella stessa ricerca del 2011 circa il 15% degli studenti universitari — già promossi a un corso di architettura degli elaboratori — sbagliava esattamente così. Non è un errore da distratti.
La scorciatoia: raggruppamento a 4 bit. Funziona perché 16 = 2⁴, cioè ogni cifra esadecimale contiene esattamente quattro bit. Quindi non serve nessun conto: basta la tabella della sezione 1.
Regola: si raggruppa da destra, e se l'ultimo gruppo a sinistra è incompleto lo si riempie con zeri a sinistra.
Esempio con 6 bit, cioè un numero che non è multiplo di 4 (ed è proprio lì che si vede se hai capito):
101101.• da destra:
10 1101• riempio a sinistra:
0010 1101• traduco:
0010 = 2, 1101 = D• risultato:
2D₁₆Controllo: 2 × 16 + 13 = 45. E
101101₂ vale 45, l'avevamo già trovato due volte. Torna.Perché gli zeri vanno a sinistra e non a destra. Perché a destra ci sono le unità. Aggiungere zeri davanti non cambia il valore (007 è 7), aggiungerli dietro moltiplica il numero. Se raggruppi
101101 da sinistra ottieni 1011 01 → completando male diventa 1011 0100, cioè B4 = 180. Quattro volte tanto. Sbagliato.Al contrario, da esadecimale a binario: ogni cifra diventa quattro bit.
3F₁₆ → 3 = 0011, F = 1111 → 00111111₂ = 63. Verifica con i pesi: 32 + 16 + 8 + 4 + 2 + 1 = 63. E con il metodo posizionale: 3 × 16 + 15 = 63. Due strade, stesso risultato.L'ottale, in breve. Base 8, cifre da 0 a 7, e niente lettere. Funziona come l'esadecimale ma a gruppi di 3 bit, perché 8 = 2³. Esempio:
101101₂ → da destra 101 101 → 5 e 5 → 55₈. Controllo: 5 × 8 + 5 = 45. Ancora 45.A cosa serve oggi? Quasi solo ai permessi dei file su Linux e macOS: quando scrivi
chmod 755 stai dicendo 111 101 101 in binario, cioè tre gruppi di tre bit (lettura, scrittura, esecuzione) per tre categorie di utenti. Il 7 è 111, tutti i permessi; il 5 è 101, lettura ed esecuzione ma non scrittura.Piccola nota sul perché certe basi si agganciano bene al binario: sono potenze di 2 (4, 8, 16), e ogni loro cifra vale esattamente un gruppo di bit — due bit in base 4, tre in base 8, quattro in base 16. La base 10 non lo è, perché 10 si scompone in 2 × 5 e quel 5 rovina tutto — motivo per cui fra decimale e binario bisogna fare i conti sul serio, mentre fra binario ed esadecimale basta guardare una tabella. Se vuoi capire meglio la scomposizione in fattori, c'è la guida sui numeri primi.
Dove incontri l'esadecimale senza saperlo. Non è una noia scolastica: è dappertutto sul tuo telefono.
• I colori. In CSS un colore si scrive
#RRGGBB, due cifre esadecimali per il rosso, due per il verde, due per il blu, ognuna da 00 a FF cioè da 0 a 255. #FF5733: FF = 255 (rosso al massimo), 57 = 5 × 16 + 7 = 87 (poco verde), 33 = 3 × 16 + 3 = 51 (pochissimo blu). Fa rgb(255, 87, 51), un arancione acceso. E #FF0000 è il rosso puro perché FF è il massimo che ci sta in un byte.• L'indirizzo MAC. Apri Impostazioni → Wi-Fi → informazioni sulla rete: trovi qualcosa tipo
A4:83:E7:2F:0B:19. Sono sei gruppi di due cifre esadecimali, cioè 6 byte, cioè 48 bit, secondo lo standard IEEE. I primi tre gruppi identificano il produttore della scheda di rete.• I codici di errore. La schermata blu di Windows
INACCESSIBLE_BOOT_DEVICE ha il codice 0x0000007B (la documentazione Microsoft lo riporta così). Quel 7B vale 7 × 16 + 11 = 123. Il codice più temuto d'Italia è il numero 123.• Unicode. Ogni carattere ha un codice scritto
U+ seguito da cifre esadecimali. La faccina sorridente è U+1F600, cioè 1 × 65.536 + 15 × 4.096 + 6 × 256 = 65.536 + 61.440 + 1.536 = 128.512.La regola che tiene insieme i colori, l'indirizzo MAC e i codici di errore è una sola: due cifre esadecimali = un byte = 8 bit. Il numero Unicode è l'eccezione: lì l'esadecimale serve solo a scrivere il numero del carattere, e quanti byte occupi davvero dipende dalla codifica (lo vediamo nella sezione 7).
Pubblicità
Bit, byte, multipli e quanti numeri ci stanno
Il bit è la risposta a una domanda sì/no. Acceso o spento, vero o falso, 0 o 1. È l'unità minima di informazione: meno di così non si può dire niente. Il nome viene da BInary digiT, cifra binaria.
Il byte è un raggruppamento di 8 bit (si chiama anche ottetto). Non è più fondamentale del bit, è solo la taglia comoda: con 8 bit si rappresentano 256 valori diversi, abbastanza per tutte le lettere, le cifre e la punteggiatura di un alfabeto. Da lì è diventato l'unità di misura standard della memoria.
Notazione, e qui si perdono punti: b minuscola = bit, B maiuscola = byte. È l'unica differenza fra
Mbps e MB/s, e nessuno la nota da solo. Esempio verificabile stasera: la tua connessione "da 100 mega" è 100 Mbps, cioè 100 megabit al secondo. Il download si misura in megabyte al secondo. 100 ÷ 8 = 12,5 MB/s. Non ti stanno rubando niente: sono due unità diverse, e il fattore è 8.Quanti numeri ci stanno in n bit. Ogni bit può stare in 2 stati. Due bit fanno 2 × 2 = 4 combinazioni, tre bit 2 × 2 × 2 = 8, e così via: con n bit hai 2ⁿ configurazioni, che rappresentano i numeri da 0 a 2ⁿ − 1.
| Bit | Configurazioni (2ⁿ) | Numero più grande (2ⁿ − 1) |
|---|---|---|
| 4 | 16 | 15 |
| 8 | 256 | 255 |
| 10 | 1.024 | 1.023 |
| 16 | 65.536 | 65.535 |
| 32 | 4.294.967.296 | 4.294.967.295 |
Il massimo è 2ⁿ − 1 e non 2ⁿ perché lo zero occupa una configurazione. Con 8 bit i valori sono 256, ma vanno da 0 a 255.
La domanda inversa — quante cifre mi servono per scrivere un certo numero? — è un logaritmo in base 2: per scrivere 500 servono 9 bit perché 2⁸ = 256 non basta e 2⁹ = 512 sì. Se vuoi vedere la macchina dietro questo ragionamento, c'è la guida su logaritmi ed esponenziali.
Ogni bit in più raddoppia, non somma. È la frase da portarsi via, e la trovi confermata ovunque:
• 7 bit → 128 caratteri (ASCII, standard ANSI X3.4 del 1968);
• 8 bit → 256 caratteri (ASCII esteso);
• 24 bit → 16.777.216 colori (256 × 256 × 256, la profondità colore degli schermi di oggi);
• 32 bit → 4.294.967.296 indirizzi IPv4 (la specifica è l'RFC 791 del 1981: "Addresses are fixed length of four octets (32 bits)"). Sono finiti davvero: il 3 febbraio 2011 IANA ha assegnato gli ultimi blocchi liberi;
• 48 bit → 281.474.976.710.656 indirizzi MAC;
• 128 bit → circa 3,4 × 10³⁸ indirizzi IPv6 (RFC 8200, 2017).
E attenzione al confronto più istruttivo di tutti: IPv6 non ha quattro volte gli indirizzi di IPv4 solo perché 128 = 4 × 32. Ne ha 2⁹⁶ volte tanti, perché da 32 a 128 bit ci sono 96 raddoppi.
I multipli, e il pasticcio 1000 contro 1024. Ci sono due famiglie di unità, e vanno sapute entrambe:
| Unità | Valore | Chi la usa |
|---|---|---|
| kB (kilobyte) | 1.000 byte | produttori di hardware, standard SI |
| KiB (kibibyte) | 1.024 byte = 2¹⁰ | sistemi operativi, standard IEC |
| MB / MiB | 1.000.000 / 1.048.576 byte | idem |
| GB / GiB | 10⁹ / 2³⁰ byte | idem |
I prefissi binari (Ki, Mi, Gi, Ti) sono stati introdotti dalla IEC nel 1998 (emendamento 2 alla norma IEC 60027-2, poi confluita nella IEC 80000-13 del 2008) proprio per togliere l'ambiguità. Avvertenza pratica: il tuo libro e il tuo prof diranno quasi certamente "1 kB = 1024 byte", e in verifica devi rispondere così. Non è che sbagliano: è la convenzione storica, nata perché 1024 = 2¹⁰ è comodo per una macchina che indirizza la memoria in binario, mentre 1000 = 10³ è comodo per noi. I due numeri differiscono del 2,4% e per decenni si è fatto finta che coincidessero.
Lo scarto però si accumula, e da qui viene una cosa che ti sei già chiesto: perché un hard disk da 1 TB ne mostra solo 931? Il produttore vende 1.000.000.000.000 di byte, che sono 1 TB corretti in base 10. Il sistema operativo divide per 1024 tre volte e mostra 931, che sono GiB, ma li etichetta "GB". Non manca niente: sono esattamente gli stessi byte, contati con un'unità diversa.
I caratteri sono numeri. Nella tabella ASCII ogni carattere ha un codice:
A = 65 = 01000001₂ = 0x41, e a = 97. Fra maiuscola e minuscola ci sono esattamente 32 di differenza, cioè un solo bit. Non devi impararla a memoria: devi sapere che a ogni carattere corrisponde un numero e che in ASCII una lettera occupa 1 byte.Unicode è nato perché 256 caratteri non bastano per il mondo: nella versione 16.0 contiene quasi 155.000 caratteri, alfabeti non latini ed emoji compresi. La codifica UTF-8 usa da 1 a 4 byte per carattere, ed è fatta in modo che i primi 128 caratteri coincidano con l'ASCII e costino un byte solo. Conseguenza concreta: una faccina come
U+1F600 occupa 4 byte, cioè quanto quattro lettere. Il tuo messaggio con tre emoji pesa quanto uno con dodici lettere in più. In un testo italiano il costo medio per carattere resta poco sopra 1 byte, perché le lettere accentate ne costano due e tutto il resto uno: se il concetto di media pesata ti è scivolato via, lo trovi in media, moda e mediana.Un conto che chiude la sezione. Una foto da 12 megapixel, con 3 byte per pixel (8 bit per il rosso, 8 per il verde, 8 per il blu):
12.000.000 × 3 = 36.000.000 byte, cioè 36 MB, ovvero 34,3 MiB.
In galleria però quella foto pesa 3-5 MB. La differenza la fa la compressione JPEG, che butta via l'informazione che il tuo occhio non nota. Stessa immagine, un decimo dello spazio.
Aritmetica binaria: somma, sottrazione e traboccamento
Addizione. Le regole sono quattro e sono tutte qui:
0 + 0 = 0 · 0 + 1 = 1 · 1 + 0 = 1 · 1 + 1 =
10₂, cioè scrivi 0 e riporti 1.L'ultima è quella che fa perdere i punti. In binario 1 + 1 non fa 2: il simbolo "2" in base 2 non esiste. Fa "uno-zero", esattamente come in decimale 5 + 5 fa 10 e non esiste un simbolo per "dieci".
Esercizio svolto:
1011₂ + 1101₂.| 1 | 0 | 1 | 1 | |
|---|---|---|---|---|
| + | 1 | 1 | 0 | 1 |
Colonna per colonna, da destra:
1) 1 + 1 =
10 → scrivo 0, riporto 12) 1 + 0 + riporto 1 =
10 → scrivo 0, riporto 13) 0 + 1 + riporto 1 =
10 → scrivo 0, riporto 14) 1 + 1 + riporto 1 =
11 → scrivo 1, riporto 15) resta il riporto: scrivo 1
Risultato:
11000₂. Verifica in decimale: 11 + 13 = 24, e 11000₂ = 16 + 8 = 24. Torna.Sottrazione. Qui l'errore è preciso e frequentissimo: si presta 10₂, cioè due, non uno. È ovvio se pensi al decimale — quando prendi in prestito dalla colonna a sinistra prendi dieci unità, non una — ma in binario molti prendono 1 e sbagliano tutto.
Esercizio svolto:
1101₂ − 0110₂.Da destra:
1) 1 − 0 = 1
2) 0 − 1: non si può, prendo in prestito dalla colonna a sinistra e diventa
10₂ − 1 = 13) la colonna vale ora 0 (ha prestato); 0 − 1: prendo in prestito ancora,
10₂ − 1 = 14) la colonna vale ora 0; 0 − 0 = 0
Risultato:
0111₂. Verifica: 13 − 6 = 7, e 0111₂ = 4 + 2 + 1 = 7. Torna.Moltiplicazione e divisione si fanno come in decimale, anzi più facilmente: moltiplicare per una cifra significa copiare il numero (se è 1) o scrivere zeri (se è 0). Al primo anno raramente le chiedono.
Traboccamento (overflow): quando i bit finiscono. Su 8 bit il massimo è 255, cioè
11111111₂. Se aggiungi 1 ottieni 100000000, che ha 9 cifre: la nona non ha dove stare, viene persa, e nel registro resta 00000000. Il computer non ti avvisa. Dice zero.Non è un problema teorico. Guarda quante volte torna lo stesso numero, 2³¹ − 1 = 2.147.483.647, cioè il massimo di un intero con segno a 32 bit:
• Il bug dell'anno 2038. I sistemi Unix contano il tempo come secondi trascorsi dal 1º gennaio 1970. Con un intero a 32 bit con segno si arriva alle 03:14:07 UTC del 19 gennaio 2038; il secondo dopo il conteggio ribalta e la data diventa 13 dicembre 1901. La soluzione è passare a 64 bit. Tu nel 2038 avrai ventisette anni: non è storia antica.
• Gangnam Style. Nel 2014 le visualizzazioni del video si stavano avvicinando a 2.147.483.647 e YouTube passò il contatore a 64 bit prima che andasse in overflow. Il Guinness World Records ha registrato il primato come "primo video YouTube a richiedere un contatore a 64 bit". Il nuovo massimo è 9.223.372.036.854.775.807.
• Il Boeing 787. La direttiva di aeronavigabilità FAA 2015-09-07, in vigore dal 1º maggio 2015, imponeva di non tenere l'aereo alimentato per più di 248 giorni di fila: un contatore interno alle unità di controllo dei generatori andava in overflow e l'aereo poteva perdere tutta l'alimentazione in corrente alternata. Il rimedio: spegnere e riaccendere. Un aeroplano da riavviare.
• Ariane 5, volo 501. Il 4 giugno 1996 il lanciatore europeo si è distrutto 40 secondi dopo il decollo. Causa: la conversione di un numero in virgola mobile a 64 bit in un intero con segno a 16 bit, che arriva al massimo a 32.767. Il valore della velocità orizzontale era più grande. La commissione d'inchiesta CNES/ESA, presieduta da Jacques-Louis Lions, chiuse il rapporto in sei settimane.
I bit non sono un dettaglio tecnico: sono il confine del mondo che una macchina riesce a rappresentare.
Box: i numeri negativi — questa parte si fa negli istituti tecnici, al liceo di solito no. Se il tuo prof non l'ha fatta, salta pure.
Come si scrive un numero negativo se hai solo 0 e 1? Prima idea, modulo e segno: dedichi il bit più a sinistra al segno (0 = più, 1 = meno) e gli altri al valore. Su 8 bit, +5 =
00000101 e −5 = 10000101. Semplice, ma ha due difetti: esistono due zeri (00000000 e 10000000) e le somme non funzionano più con le regole normali.Si passa allora al complemento a uno (inverti tutti i bit) e infine al complemento a due, che è quello che usano davvero le macchine: inverti tutti i bit e aggiungi 1. Il vantaggio è enorme: la sottrazione diventa un'addizione, e il circuito che somma serve anche a sottrarre.
Esercizio svolto: 25 − 13 su 8 bit in complemento a due.
1) 25 =
00011001 (16 + 8 + 1)2) 13 =
00001101 (8 + 4 + 1)3) complemento a uno di 13:
111100104) complemento a due (aggiungo 1):
11110011 — questo è −135) sommo:
00011001 + 11110011 = 1 000011006) il nono bit (il riporto in uscita) si scarta: resta
0000110000001100₂ = 8 + 4 = 12. E 25 − 13 = 12. Torna.Gli errori che ti fanno perdere punti
Guarda la forma sbagliata, non solo quella giusta: è il modo più efficace per non ripeterla.
1) Resti letti nel verso sbagliato. Convertendo 154 i resti escono nell'ordine 0, 1, 0, 1, 1, 0, 0, 1. Sbagliato: scriverli così come sono,
01011001 (che vale 89). Giusto: dall'ultimo al primo, 10011010 (che vale 154). Antidoto immediato: il risultato comincia sempre per 1, quindi uno zero iniziale è la firma di questo errore.2)
2B₁₆ = 31. Sbagliato: 20 + 11. Giusto: 2 × 16 + 11 = 43. In base 16 non esiste la colonna delle decine.3) "Base più grande = numero più grande". Sbagliato. A parità di valore, base più grande = scrittura più corta: 255 si scrive
11111111 (8 cifre) in binario e FF (2 cifre) in esadecimale. È lo stesso numero.4) Esponente che parte da 1. Sbagliato: la cifra più a destra vale ×2. Giusto: vale ×1, perché è 2⁰. Si conta da destra partendo da zero.
5) Zeri di riempimento a destra.
101101 → sbagliato 1011|0100 (= B4 = 180), giusto 0010|1101 (= 2D = 45). Si raggruppa da destra e si riempie a sinistra.6) 1 + 1 = 2 nella somma binaria. Sbagliato. Fa
10₂: scrivi 0 e riporti 1.7) Prestito di 1 invece di 10₂. Nella sottrazione si prende in prestito due, come in decimale si prendono dieci unità.
8) "A" scritto come 10 dentro un numero esadecimale. Sbagliato:
10B₁₆ per intendere AB₁₆. Dentro un numero, A è una cifra e occupa una posizione.9) Pedice della base omesso.
101 da solo non significa niente: vale 5 se è binario, 65 se è ottale, 257 se è esadecimale, centouno se è decimale. Scrivi sempre il pedice.10) Mb scambiato per MB. b minuscola = bit, B maiuscola = byte. Fattore 8.
11) 8 bit scambiati per 8 byte. 1 byte = 8 bit. 8 byte = 64 bit.
La tabella dei controlli rapidi. Una riga per conversione, da usare sempre prima di consegnare.
| Conversione | Controllo che costa dieci secondi |
|---|---|
| Decimale → binario | il risultato comincia sempre per 1 |
| Decimale → binario | numero pari → il binario finisce per 0 |
| Binario → decimale | riconverti sommando i pesi e confronta |
| Qualunque, su n bit | il massimo è 2ⁿ − 1: su 8 bit non puoi superare 255 |
| Binario → esadecimale | le cifre hex sono i bit ÷ 4, arrotondato per eccesso |
| Esadecimale → decimale | ogni cifra hex vale al massimo 15, mai 16 |
Esercizi: prova tu
Fai gli esercizi prima di guardare le soluzioni, che stanno tutte più sotto. Scrivi i passaggi: in verifica il procedimento vale quanto il risultato.
Conversioni binario ↔ decimale
1) Converti
1101₂ in decimale.2) Converti
10110₂ in decimale.3) Converti
11111₂ in decimale.4) Converti 37 in binario.
5) Converti 100 in binario.
6) Converti 255 in binario.
Esadecimale
7) Converti
3F₁₆ in decimale.8) Converti
A0₁₆ in decimale.9) Converti
2C₁₆ in decimale.10) Converti 90 in esadecimale.
11) Converti 200 in esadecimale.
Raggruppamento con un numero di bit non multiplo di 4
12) Converti
110101₂ (6 bit) in esadecimale.13) Converti
1011011₂ (7 bit) in esadecimale.14) Converti
10111₂ (5 bit) in esadecimale.Aritmetica binaria
15) Calcola
1010₂ + 0111₂.16) Calcola
10010₂ − 1011₂.17) Su 8 bit, quanto fa
11111111₂ + 1?Bit, byte, intervallo
18) Quanti valori diversi si rappresentano con 6 bit? Qual è il più grande?
19) Quanti bit servono come minimo per rappresentare il numero 500?
20) Un file di 2 KiB quanti byte sono? E quanti bit?
Quattro esercizi diversi dal solito. Non c'è una procedura da applicare: devi scegliere tu la strategia.
21) Metti in ordine crescente:
11₈, 1010₂, A₁₆, 12₁₀.22) Qual è il più grande fra
1F₁₆, 11111₂ e 33₁₀?23) Scrivi un numero binario di 5 cifre più grande di 20.
24) Scrivi il più piccolo numero di 3 cifre esadecimali e dì quanto vale in decimale.
Soluzioni
1) 8 + 4 + 1 = 13.
2) 16 + 4 + 2 = 22.
3) 16 + 8 + 4 + 2 + 1 = 31 (cinque uno di fila = 2⁵ − 1).
4) Resti: 1, 0, 1, 0, 0, 1 → dall'ultimo al primo:
100101₂. Controllo: 32 + 4 + 1 = 37.5) Resti: 0, 0, 1, 0, 0, 1, 1 →
1100100₂. Controllo: 64 + 32 + 4 = 100.6)
11111111₂, otto uno: è il massimo su 8 bit.7) 3 × 16 + 15 = 63.
8) 10 × 16 + 0 = 160.
9) 2 × 16 + 12 = 44. Se ti è uscito 32, hai letto il 2 come "venti".
10) 90 ÷ 16 = 5 con resto 10 → A; 5 ÷ 16 = 0 con resto 5. Dall'ultimo al primo:
5A₁₆. Controllo: 5 × 16 + 10 = 90.11) 200 ÷ 16 = 12 con resto 8; 12 ÷ 16 = 0 con resto 12 → C. Risultato:
C8₁₆. Controllo: 12 × 16 + 8 = 200.12)
11|0101 → 0011 0101 → 35₁₆. Controllo: 3 × 16 + 5 = 53, e 110101₂ = 32 + 16 + 4 + 1 = 53.13)
101|1011 → 0101 1011 → 5B₁₆. Controllo: 5 × 16 + 11 = 91, e 1011011₂ = 64 + 16 + 8 + 2 + 1 = 91.14)
1|0111 → 0001 0111 → 17₁₆. Controllo: 16 + 7 = 23, e 10111₂ = 16 + 4 + 2 + 1 = 23.15)
10001₂. Controllo: 10 + 7 = 17 = 16 + 1.16)
00111₂, cioè 111. Controllo: 18 − 11 = 7 = 4 + 2 + 1.17)
00000000₂ con il riporto perso: è un overflow. 255 + 1 = 256 non ci sta in 8 bit.18) 2⁶ = 64 valori, da 0 a 63.
19) 9 bit: 2⁸ = 256 non basta, 2⁹ = 512 sì (500 =
111110100₂).20) 2 × 1.024 = 2.048 byte = 2.048 × 8 = 16.384 bit.
21)
11₈ = 9; 1010₂ = 10; A₁₆ = 10; 12₁₀ = 12. Ordine: 11₈ < 1010₂ = A₁₆ < 12₁₀. Due di loro sono lo stesso numero scritto in due modi.22)
1F₁₆ = 31 e 11111₂ = 31: identici. Il più grande è 33₁₀.23) Con 5 cifre binarie copri i numeri da
10000₂ = 16 a 11111₂ = 31, quindi ti serve un valore fra 21 e 31. Per esempio 10101₂ = 21 (16 + 4 + 1). Va bene qualunque numero da lì in su.24) Il più piccolo è
100₁₆ (con 1 davanti, altrimenti non sono tre cifre) = 1 × 256 + 0 + 0 = 256. Non a caso: è il primo numero che non sta in due cifre esadecimali, cioè in un byte.Domande frequenti
Come si converte un numero da decimale a binario?
Con le divisioni successive per 2: dividi il numero per 2 e annoti il resto, poi dividi per 2 il quoziente, e vai avanti finché il quoziente non diventa 0. Poi scrivi i resti partendo dall'ultimo che hai calcolato. Esempio con 45: 45 : 2 = 22 con resto 1, poi 11 resto 0, 5 resto 1, 2 resto 1, 1 resto 0, 0 resto 1, e il risultato è 101101 in base 2. Controllo che costa dieci secondi: il risultato comincia sempre per 1, perché l'ultima divisione è sempre 1 : 2 = 0 con resto 1.
Come si converte un numero binario in decimale?
Scrivi i pesi sopra le cifre partendo da destra con 1 e raddoppiando verso sinistra (1, 2, 4, 8, 16, 32, 64, 128), poi somma solo i pesi delle colonne che hanno un 1 e salta gli zeri. Esempio: 1011 in base 2 ha i pesi 8, 4, 2, 1 e le cifre 1, 0, 1, 1, quindi vale 8 + 2 + 1 = 11. Ricorda che la colonna più a destra vale 1 e non 2, perché è 2⁰: le posizioni si contano da destra partendo da zero.
Perché i resti delle divisioni si leggono al contrario?
Perché la prima divisione per 2 ti dà la cifra delle unità, cioè il bit più a destra: quel resto dice solo se il numero è pari o dispari. Ogni divisione successiva lavora su ciò che rimane e produce la cifra della posizione dopo, verso sinistra. Le cifre quindi escono dalla meno significativa alla più significativa, cioè nell'ordine opposto a quello in cui vanno scritte. Conviene ricordarlo come "l'ultimo resto calcolato è la prima cifra che scrivo" invece che come "dal basso verso l'alto": quest'ultima funziona solo se hai incolonnato le divisioni in verticale.
Quanto vale A in esadecimale e perché ci sono le lettere?
A vale 10, e poi B = 11, C = 12, D = 13, E = 14, F = 15. Le lettere ci sono perché la base 16 ha bisogno di sedici simboli diversi, uno per ogni valore da 0 a 15, e di simboli numerici ne abbiamo solo dieci: invece di inventarne di nuovi si sono prese le prime sei lettere. A, B, C, D, E, F sono cifre a tutti gli effetti e occupano una sola posizione, quindi AB in base 16 vale 10 × 16 + 11 = 171, e non va mai scritto come 1011.
1 KB fa 1000 o 1024 byte?
Tutti e due, ma con due nomi diversi. Dal 1998 lo standard IEC dice che kB (kilobyte) vale 1.000 byte e KiB (kibibyte) vale 1.024 byte, cioè 2¹⁰. Storicamente però si è sempre detto "1 KB = 1024 byte", e il tuo libro e il tuo prof quasi certamente diranno così: in verifica rispondi 1024. Da questa doppia contabilità nasce il fatto che un hard disk da 1 TB ne mostri solo 931: il produttore conta in base 10, il sistema operativo divide per 1024 tre volte e chiama "GB" quelli che in realtà sono GiB. Non manca nessun byte.
Che differenza c'è tra bit e byte?
Il bit è l'unità minima di informazione, la risposta a una domanda sì/no, e può valere solo 0 o 1. Il byte è un raggruppamento di 8 bit, nato perché con 8 bit si rappresentano 256 valori diversi, abbastanza per un carattere. Si scrivono in modo diverso: b minuscola per il bit, B maiuscola per il byte. È per questo che una connessione "da 100 mega" (100 Mbps, cioè megabit al secondo) scarica al massimo circa 12,5 MB/s, cioè 100 diviso 8.
Quanti numeri si possono rappresentare con 8 bit e qual è il più grande?
Con n bit si rappresentano 2ⁿ configurazioni diverse, che vanno da 0 a 2ⁿ − 1. Con 8 bit sono quindi 256 valori, da 0 a 255. Il massimo è 255 e non 256 perché anche lo zero occupa una configurazione. Tieni presente che ogni bit in più raddoppia il numero di valori, non lo somma: 4 bit danno 16 valori, 8 bit ne danno 256, 16 bit ne danno 65.536.
Perché il computer usa il sistema binario?
Perché un circuito riesce a distinguere in modo affidabile due soli stati elettrici, tensione alta e tensione bassa, e con due stati si possono scrivere tutti i numeri. Nessun filo porta esattamente 5 volt: c'è sempre rumore elettrico, calore, interferenza. Con due stati resta un margine di sicurezza ampio (nella logica TTL circa 0,7 V sul livello alto), mentre con dieci livelli distinti su 5 V ogni cifra avrebbe circa mezzo volt e una fluttuazione normale cambierebbe il numero. Non è vero che il binario sia "la lingua del computer": è solo un modo di scrivere i numeri, e infatti l'ENIAC era una macchina decimale.
Conclusioni
Le cinque cose da sapere a memoria, se stasera hai tempo per una cosa sola:
1) Le potenze di 2 almeno fino a 2¹⁰ = 1.024.
2) La tabella 0-F: decimale, binario a 4 bit, esadecimale.
3) Nelle divisioni successive, l'ultimo resto calcolato è la prima cifra che scrivi — e il risultato comincia sempre per 1.
4) Il raggruppamento a 4 bit si fa da destra, con gli zeri di riempimento a sinistra.
5) Con n bit hai 2ⁿ configurazioni e il numero più grande è 2ⁿ − 1.
Il filo che tiene insieme tutto è uno solo: la base non cambia il numero, cambia solo come lo scrivi. Undici resta undici, che tu lo scriva
11₁₀, 1011₂, 13₈ o B₁₆. E il binario non è un linguaggio misterioso: è la scrittura che sopravvive meglio al rumore elettrico, quindi quella che conviene a chi costruisce circuiti.Restano fuori, perché non sono programma di primo biennio, tre argomenti che incontrerai dopo e che avranno una guida dedicata: la codifica di immagini e suoni (pixel, RGB, campionamento), l'algebra di Boole con le porte logiche e le tabelle di verità, e la rappresentazione in virgola mobile secondo lo standard IEEE 754, che si affronta al triennio. Tutte e tre partono da quello che hai letto qui: valore posizionale, peso, e la differenza fra una cifra e ciò che quella cifra vale.
Fonti: Herman, Loui, Zilles, Computer Science Education (2011) · G. W. Leibniz, Explication de l'arithmétique binaire, Académie Royale des Sciences (1703) · C. Shannon, A Symbolic Analysis of Relay and Switching Circuits, MIT (1937) · IETF, RFC 791 (1981) e RFC 8200 (2017) · IEC 60027-2 A2 (1998) e IEC 80000-13 (2008) · Unicode Consortium, Unicode 16.0
Utenti più affidabili
Ancora nessuno in classifica. Rispondi a una domanda e ci finisci tu.
Ultimi articoli
- Informatica Sistemi di numerazione: binario, decimale ed esadecimale
- Fisica Moto rettilineo uniforme e uniformemente accelerato
- Fisica Le leggi di Newton spiegate con esempi di tutti i giorni
- Medicina alternativa Agopuntura: come funziona e le prove di efficacia
- Medicina alternativa Le proprietà curative delle piante medicinali: tutto quello che devi sapere
- Matematica Identità Trigonometriche: Guida Completa con Esercizi Risolti
- Matematica Equazione della Parabola, Ellisse e Iperbole: Guida Completa con Esercizi Risolti
- Matematica L'Equazione della Circonferenza: Guida Completa con Esercizi Risolti
Ultimi commenti
Ancora nessun commento. Se leggi qualcosa che non ti torna, scrivilo tu per primo.

0 commenti
Nessun commento. Se qualcosa non ti torna o vuoi aggiungere un pezzo, scrivi tu il primo.
Vuoi commentare? Serve un account: si fa in trenta secondi e non chiediamo conferme via email.
Crea un account Ho già un account