Tabella di riferimento delle cifre esadecimali
Ogni cifra esadecimale corrisponde a un valore da zero a quindici e a esattamente quattro cifre binarie.
| Cifra esadecimale | Valore decimale | Binario (4 bit) |
|---|---|---|
| 0 | 0 | 0000 |
| 1 | 1 | 0001 |
| 4 | 4 | 0100 |
| 7 | 7 | 0111 |
| 9 | 9 | 1001 |
| A | 10 | 1010 |
| C | 12 | 1100 |
| F | 15 | 1111 |
- Gli input sono limitati a 12 cifre esadecimali per operando, e i risultati devono restare nell'intervallo di interi esatti della doppia precisione IEEE 754 (2⁵³ − 1); i risultati più grandi vengono rifiutati anziché arrotondati.
- La sottrazione può produrre un risultato negativo, mostrato con un segno meno; qui non viene usata la rappresentazione in complemento a due.
Cos'è l'aritmetica esadecimale?
L'esadecimale è un sistema numerico posizionale in base 16: ogni posizione di cifra rappresenta una potenza di 16, e i sedici simboli sono 0-9 seguiti da A (dieci), B (undici), C (dodici), D (tredici), E (quattordici) e F (quindici). Il numero esadecimale 1A significa 1×16 + 10 = 26 in decimale, e 2F significa 2×16 + 15 = 47.
L'aritmetica in esadecimale segue le stesse regole dell'aritmetica decimale, tranne per il fatto che i riporti e i prestiti avvengono a sedici invece che a dieci. Sommando le cifre esadecimali A e F si ottiene venticinque, che è 19 in esadecimale: si scrive 9 e si riporta 1. Molte persone trovano più semplice convertire in decimale, calcolare e riconvertire, che è esattamente ciò che questo calcolatore fa internamente.
L'esadecimale ha un ruolo centrale in informatica perché 16 = 2⁴: una cifra esadecimale corrisponde esattamente a quattro cifre binarie, quindi un byte (8 bit) è sempre composto da due cifre esadecimali, da 00 a FF. Indirizzi di memoria, valori colore, checksum e dump di byte grezzi si scrivono convenzionalmente in esadecimale, spesso con il prefisso 0x.
Come usare questo calcolatore esadecimale
- Inserisci il primo numero esadecimale (cifre 0-9 e A-F; è accettato un prefisso 0x opzionale).
- Scegli l'operazione: somma, sottrazione, moltiplicazione — oppure conversione, che traduce solo il primo numero.
- Per le operazioni aritmetiche, inserisci il secondo numero esadecimale.
- Leggi il risultato in esadecimale, decimale e binario. In modalità conversione l'output mostra le forme decimale e binaria del primo numero.
La matematica dietro l'aritmetica esadecimale
Ogni operando viene valutato cifra per cifra rispetto alle potenze di 16 per ottenere il suo valore decimale; l'operazione viene eseguita sui valori decimali; il risultato viene poi riespresso in base 16 tramite divisioni successive.
Esempio pratico: 1A + 2F. In decimale, 1A = 26 e 2F = 47, quindi la somma è 73. Riconvertendo: 73 ÷ 16 = 4 resto 9, quindi 73 = 49 in esadecimale e 1001001 in binario. Colonna per colonna avviene lo stesso, cifra per cifra: A + F = 25 = 19₁₆, si scrive 9 e si riporta 1; poi 1 + 2 + 1 = 4, dando 49₁₆.
Errori comuni
- Riportare a dieci invece che a sedici quando si sommano cifre esadecimali a mano: A + F fa 19₁₆ (si scrive 9, si riporta 1), non 25.
- Leggere i numeri esadecimali come decimali: 10₁₆ vale sedici, non dieci, e 100₁₆ vale 256.
- Confondere la lettera O con la cifra 0, o la elle minuscola l con 1, quando si trascrivono valori esadecimali.
- Dimenticare che un byte è esattamente due cifre esadecimali: omettere uno zero iniziale (0x0F → F) è innocuo numericamente ma rompe la notazione a larghezza fissa dei byte.
Domande frequenti
Come si sommano due numeri esadecimali?
Si somma colonna per colonna da destra, esattamente come nell'addizione decimale, ma si riporta quando una colonna raggiunge sedici. Per 1A + 2F: A (10) + F (15) = 25 = 16 + 9, quindi si scrive 9 e si riporta 1; poi 1 + 2 + 1 = 4. Il risultato è 49 in esadecimale, che equivale a 73 in decimale.
Cosa significa 0x davanti a un numero?
Il prefisso 0x indica che un numero è esadecimale, distinguendolo dal decimale. Deriva dal linguaggio di programmazione C ed è ormai quasi universale: 0x1A significa esadecimale 1A, cioè 26 in decimale. Questo calcolatore accetta input esadecimali con o senza prefisso.
Come si converte l'esadecimale in decimale?
Moltiplica il valore di ciascuna cifra esadecimale per la potenza di 16 della sua posizione, contando da 0 da destra, e somma. Per 2F: 2×16 + 15×1 = 47. Per 1A3: 1×256 + 10×16 + 3×1 = 419. Le lettere A-F rappresentano i valori 10-15.
Come si converte l'esadecimale in binario?
Sostituisci ogni cifra esadecimale con il suo equivalente binario a 4 bit: 2F diventa 0010 1111. Questa scorciatoia cifra per cifra funziona perché 16 = 2⁴, quindi non serve alcun calcolo aritmetico: è il motivo principale per cui l'esadecimale viene usato come abbreviazione dei dati binari.
Questo calcolatore gestisce i numeri esadecimali negativi?
La sottrazione può dare un risultato negativo, mostrato con un segno meno iniziale (per esempio 5 − A = −5). Il calcolatore non usa la codifica in complemento a due, la convenzione a larghezza fissa impiegata internamente dai processori, dove lo stesso pattern di bit può significare sia un grande valore senza segno sia un valore negativo con segno.
Fonti
- Knuth DE. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, 3rd edition, Addison-Wesley, 1997 — radix arithmetic and conversion.
- IEEE Std 754-2019. IEEE Standard for Floating-Point Arithmetic — exact-integer limits of double precision.