L'esadecimale in una frase
L'esadecimale è un sistema di numerazione posizionale in base 16: ogni cifra vale 16 volte quella alla sua destra, e i valori da 10 a 15 si scrivono con le lettere da A a F. Per indicare che un numero è esadecimale, i programmatori scrivono 0x1A (C, Java, JavaScript, Python), #1A2B3C per i colori CSS, 1Ah in assembly o 1A₁₆ in matematica.
Le cifre esadecimali da 0 a 15
| Decimale | Hex | Binario | Decimale | Hex | Binario |
|---|---|---|---|---|---|
| 0 | 0 | 0000 | 8 | 8 | 1000 |
| 1 | 1 | 0001 | 9 | 9 | 1001 |
| 2 | 2 | 0010 | 10 | A | 1010 |
| 3 | 3 | 0011 | 11 | B | 1011 |
| 4 | 4 | 0100 | 12 | C | 1100 |
| 5 | 5 | 0101 | 13 | D | 1101 |
| 6 | 6 | 0110 | 14 | E | 1110 |
| 7 | 7 | 0111 | 15 | F | 1111 |
Contare in esadecimale
In esadecimale si conta come in decimale, ma il riporto scatta dopo la F invece che dopo il 9: … 8, 9, A, B, C, D, E, F, 10, 11 … 19, 1A … 1F, 20 … FF, 100. Qui 10 significa sedici e 100 significa 16 × 16 = 256. Due cifre hex coprono un byte (00–FF = 0–255), quattro cifre arrivano fino a FFFF = 65.535 e otto cifre fino a FFFFFFFF = 4.294.967.295.
Perché i computer usano l'esadecimale
I computer memorizzano tutto in binario, ma lunghe sequenze di 0 e 1 sono difficili da leggere per le persone e facili da sbagliare. Poiché 16 = 2⁴, una cifra hex corrisponde esattamente a quattro bit (un nibble) e due cifre hex a un byte. La conversione tra hex e binario è una semplice sostituzione cifra per cifra, e l'hex è quattro volte più corto: 1101 1110 1010 1101 è semplicemente DEAD. Il decimale non ha un rapporto così diretto con il binario, ed è per questo che si usa raramente per i dati grezzi.
Convertire da esadecimale a decimale e viceversa
- Da esadecimale a decimale: moltiplica ogni cifra per la sua potenza di 16 e somma:
2F= 2 × 16 + 15 = 47, e1A3F= 1 × 4096 + 10 × 256 + 3 × 16 + 15 = 6719. - Da decimale a esadecimale: dividi ripetutamente per 16 e leggi i resti al contrario: 200 ÷ 16 = 12 con resto 8, e 12 = C, quindi 200 =
C8. - Da esadecimale a binario: sostituisci ogni cifra con i suoi 4 bit:
2F=0010 1111.
I nostri convertitori fanno tutto questo all'istante e mostrano ogni passaggio.
Dove si usa l'esadecimale
- Colori web:
#FF6347è rossoFF, verde63e blu47. - Indirizzi di memoria: debugger e report di crash mostrano puntatori come
0x7FFE5A3C. - Indirizzi MAC: sei byte come
00:1A:2B:3C:4D:5Eidentificano le schede di rete. - Indirizzi IPv6: otto gruppi di quattro cifre hex, ad esempio
2001:db8::1. - Unicode: ogni carattere ha un code point esadecimale –
U+00E9è é eU+1F600è 😀. - Hash e ID: un hash SHA-256 è lungo 64 caratteri hex, e gli UUID e gli ID dei commit Git si scrivono in esadecimale.
- Dump esadecimali: gli editor esadecimali mostrano il contenuto dei file byte per byte; ogni PDF inizia con
25 50 44 46(“%PDF”). - Codici di errore: Windows segnala errori come
0x80070005(accesso negato).
Esadecimale, decimale, ottale e binario a confronto
| Sistema | Base | Cifre | 255 si scrive | Uso tipico |
|---|---|---|---|---|
| Binario | 2 | 0–1 | 11111111 | Hardware, flag di bit |
| Ottale | 8 | 0–7 | 377 | Permessi dei file Unix (chmod 755) |
| Decimale | 10 | 0–9 | 255 | Numeri di tutti i giorni |
| Esadecimale | 16 | 0–9, A–F | FF | Byte, colori, indirizzi, hash |
Numeri negativi in esadecimale
L'esadecimale in sé non ha un segno speciale, quindi i numeri negativi vengono di solito memorizzati in complemento a due: il bit più alto di un valore a dimensione fissa indica che è negativo. Come byte con segno, 7F è 127, 80 è −128 e FF è −1; come intero a 32 bit, FFFFFFFF è −1. In matematica e nella nostra calcolatrice puoi anche scrivere semplicemente il segno meno: −1A = −26.
Domande frequenti
Perché l'esadecimale usa le lettere?
La base 16 richiede sedici cifre di un solo carattere, ma le cifre numeriche sono solo dieci. Le lettere A–F rappresentano i valori 10–15. Maiuscole e minuscole hanno lo stesso significato: ff = FF = 255.
Cosa significa 0x davanti a un numero?
Indica che il numero è esadecimale in C, C++, Java, JavaScript, Python e molti altri linguaggi: 0x10 vale 16, non dieci. Il CSS usa invece # per i colori, e il codice assembly spesso aggiunge una h finale (10h).
L'esadecimale è la stessa cosa del Base64?
No. L'hex scrive ogni byte con due caratteri tra 0–9 e A–F, quindi i dati raddoppiano di dimensione ma restano facili da leggere byte per byte. Il Base64 usa 64 caratteri e racchiude 3 byte in 4 caratteri: è più compatto (circa il 33% in più) ma non è leggibile byte per byte.
Ultimo aggiornamento: