Sei sulla pagina 1di 3

1 di 4

Da Wikipedia, l'enciclopedia libera.

Il sistema numerico esadecimale (spesso abbreviato come esa o hex) un sistema numerico posizionale in base 16, cio che utilizza 16 simboli invece dei 10 del sistema numerico decimale tradizionale. Per l'esadecimale si usano in genere simboli da 0 a 9 per le prime dieci cifre, e poi le lettere da A a F per le successive sei cifre, per un totale di 16 simboli. Ecco una tabella che confronta le rappresentazioni esadecimali, decimali e ottali dei numeri fino a 15: 0hex 1hex 2hex 3hex = = = = 0dec 1dec 2dec 3dec = = = = 0oct 1oct 2oct 3oct 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

4hex = 4dec 5hex = 5dec 6hex = 6dec 7hex = 7dec 8hex 9hex Ahex Bhex Chex Dhex Ehex Fhex = = = = = = = = 8dec 9dec 10dec 11dec 12dec 13dec 14dec 15dec

= 4oct = 5oct = 6oct = 7oct = = = = = = = = 10oct 11oct 12oct 13oct 14oct 15oct 16oct 17oct

Perci il numero decimale 79, la cui rappresentazione binaria 0100 1111, pu essere scritto come 4F in esadecimale. Il sistema esadecimale molto usato in informatica, per la sua relazione diretta tra una cifra esadecimale e quattro cifre binarie. spesso usato come intermediario, oppure come sistema numerico a s stante. Per esempio, possibile esprimere un byte con esattamente due cifre esadecimali (invece che con 3 decimali, e lasciando gran parte dell'intervallo non utilizzato). interessante, infatti, notare come ogni cifra esadecimale corrisponda a un nibble, cio a un numero binario di quattro cifre. Ci sono numerosi modi per denotare un numero come esadecimale, usati in differenti linguaggi di programmazione: Ada e VHDL racchiudono in numeri in "virgolette numeriche" che riportano anche la base, per esempio "16#5A3#" (Nota: Ada accetta questa notazione per tutte le basi dalla 2 alla 16, e per numeri sia interi che reali). Il C e i linguaggi con una sintassi simile (come il Java) usano il prefisso '0x', per esempio "0x5A3". Lo zero iniziale presente perch i numeri devono iniziare con un carattere numerico, e la 'x' significa esadecimale (in caso di assenza della 'x', il numero inteso come ottale. Il Pascal e alcuni Assembly indicano l'esadecimale con il suffisso 'h' (se il numero inizia con una lettera, si usa anche il prefisso '0'), per esempio "0A3Ch", "5A3h". Altri assembly (AT&T, Motorola) e alcune versioni di BASIC usano il prefisso '$', per esempio "$5A3".

2 di 4

Altre versioni del BASIC usano il prefisso "&h", per esempio "&h5A3". Quando usano sistemi di numerazione diversi dalla base dieci, o numerali in basi multiple, i matematici scrivono la base come pedice del numero, per esempio "5A316" oppure "5A3SEDICI". Non esiste un simbolo standard, perci tutte le convenzioni elencate sopra vengono utilizzate, e a volte lo stesso articolo pu contenere due convenzioni diverse. Ciononostante, non si crea molta confusione perch tutte sono non ambigue. La parola "esadecimale" peculiare, perch il prefisso esa derivato dal greco (exi) (che significa sei), e decimale deriva dalla parola latina per dieci.
Indice 1 Conversione dal sistema esadecimale al sistema decimale e viceversa 2 Conversione dal sistema esadecimale al sistema binario e viceversa 3 Frazioni 4 Voci correlate

Un metodo per convertire un numero esadecimale in decimale quello di moltiplicare le sue cifre per le potenze della base 16. Ad esempio 4F dove F vale 15 (vedi tabella sopra): quindi Allora . (Si ricorda che 160 = 1). .

L'operazione inversa - da decimale ad esadecimale - si realizza con una serie di divisioni successive. Si utilizza la divisione con resto. Vediamo un esempio: 79:16= 4 con resto 15, si arrotonda per difetto il resto cio 4. Successivamente si moltiplica 4*16= 64 e il prodotto va sottratto a 79, cio 79-64= 15 (si noti che impossibile che il risultato della sottrazione sia maggiore di 15). Il resto 4 inferiore alla base 16 e quindi il procedimento di divisione terminato. I resti delle operazioni sono 15 e 4: letti partendo dal basso (come per il sistema binario) si scrive 4 e 15 dove il valore 15 si scrive come F (vedi tabella) nel valore 4F di partenza. Un altro esempio: FB3 in esadecimale corrisponde al numero 4019 in base decimale. Si ha

Viceversa, convertiamo 4019 in esadecimale: 4019:16 = 251 con resto 3. Il quoziente 251 va di nuovo diviso per 16, 251:16 = 15 con resto 11,

3 di 4

Il quoziente 15 minore della base 16 e il procedimento di divisione si arresta. Si scrive il numero partendo dall'ultimo risultato ottenuto e si risale la successione dei resti. Il numero esadecimale 15-11-3 cio F-B-3 che si scrive FB3.

Come riportato nell'introduzione, la ragione per cui si adopera in informatica il sistema esadecimale che pu essere considerato come una scrittura pi compatta del sistema binario. La conversione dalla base 16 alla base 2 e viceversa pu essere svolta per sostituzione di gruppi di cifre invece che con algoritmi di divisione. Ad esempio, si consideri il seguente numero in base 16: A16BC916. Per convertilo in base 2, sufficiente prelevare ciascuna cifra esadecimale e sostituirla con il suo equivalente nel sistema binario, come riportato nella colonna a destra della tabella iniziale. Seguendo questa procedura, si perviene al seguente risultato: A16BC916 = A 916 1 6 B C = 1010 0001 0110 1011 1100 10012 = 1010000101101011110010012 Per ottenere la conversione opposta, invece, bisogna procedere nella maniera inversa: si suddivide il numero binario in gruppi di 4 cifre a partire da destra (se l'ultimo gruppo contiene meno di 4 cifre, vanno anteposti tanti zeri quanti servono per completarlo) e si sostituisce ogni gruppo con il suo equivalente esadecimale. Supponiamo ad esempio di convertire in base 16 il numero in base 2: 1001011111110010112. Effettuando le operazioni descritte in precedenza si ha: 1001011111110010112 = 0010 0101 1111 1100 10112 = 2 5 F C B16 = 25FCB16

Il sistema esadecimale, come ogni sistema di numerazione posizionale, permette di rappresentare anche le frazioni, come numeri con la virgola: questi rappresentazioni possono essere limitate oppure illimitate periodiche, analogamente al caso decimale. Alcuni esempi: 1/2 = 0,8: numero esadecimale limitato : numero esadecimale illimitato periodico 1/3 = 0,555... = 1/4 = 0,4 : periodico (semplice) 1/5 = 0,333... = : periodico (misto) 1/6 = 0,2AAA... = 1/8 = 0,2 : periodico (misto) 1/A = 0,1999... = : periodico (misto) 1/C = 0,1555... = : periodico (semplice) 1/F = 0,111... = Poich la base 16 una potenza di 2, hanno una rappresentazione limitata solo le frazioni che hanno, come denominatore, una potenza di 2. Infatti le cifre si ripetono quando il denominatore contiene un fattore primo che non si trova nella base. Nel caso dei numeri esadecimali, questo si verifica se e solo se il denominatore non