Lo svantaggio principale dei numeri binari è che la stringa binaria equivalente a un grande numero decimale in base 10 può essere piuttosto lunga.
Quando si lavora con grandi sistemi digitali, come i computer, è comune trovare numeri binari che consistono di 8, 16 e anche 32 cifre, il che rende difficile sia leggere che scrivere senza produrre errori, specialmente quando si lavora con molti numeri binari a 16 o 32 bit.
Un modo comune di superare questo problema è organizzare i numeri binari in gruppi o insiemi di quattro bit (4 bit). Questi gruppi di 4-bit usano un altro tipo di sistema di numerazione anche comunemente usato nei computer e nei sistemi digitali chiamato Numeri Esadecimali.
Stringa di numeri esadecimali
Il sistema di numerazione “Esadecimale” o semplicemente “Hex” usa il sistema a base 16 e sono una scelta popolare per rappresentare lunghi valori binari perché il loro formato è abbastanza compatto e molto più facile da capire rispetto alle lunghe stringhe binarie di 1 e 0.
Essendo un sistema di Base-16, il sistema di numerazione esadecimale usa quindi 16 (sedici) cifre diverse con una combinazione di numeri da 0 a 15. In altre parole, ci sono 16 possibili simboli di cifre.
Tuttavia, c’è un potenziale problema con l’uso di questo metodo di notazione delle cifre causato dal fatto che i numeri decimali di 10, 11, 12, 13, 14 e 15 sono normalmente scritti usando due simboli adiacenti. Per esempio, se scriviamo 10 in esadecimale, intendiamo il numero decimale dieci o il numero binario due (1 + 0). Per aggirare questo difficile problema i numeri esadecimali che identificano i valori di dieci, undici, . . . , quindici sono sostituiti con le lettere maiuscole A, B, C, D, E e F rispettivamente.
Quindi nel sistema di numerazione esadecimale si usano i numeri da 0 a 9 e le lettere maiuscole da A a F per rappresentare il suo equivalente numerico binario o decimale, iniziando dalla cifra meno significativa a destra.
Come abbiamo appena detto, le stringhe binarie possono essere piuttosto lunghe e difficili da leggere, ma possiamo rendere la vita più facile dividendo questi grandi numeri binari in gruppi pari per renderli molto più facili da scrivere e capire. Per esempio, il seguente gruppo di cifre binarie 1101 0101 1100 11112 è molto più facile da leggere e capire di 11010101110011112 quando sono tutti raggruppati insieme.
Nell’uso quotidiano del sistema di numerazione decimale usiamo gruppi di tre cifre o 000 dal lato destro per rendere un numero molto grande come un milione o un trilione, più facile per noi da capire e lo stesso è vero anche nei sistemi digitali.
I numeri esadecimali sono un sistema più complesso che usa solo numeri binari o decimali ed è usato principalmente quando si ha a che fare con i computer e le posizioni degli indirizzi di memoria. Dividendo un numero binario in gruppi di 4 bit, ogni gruppo o set di 4 cifre può ora avere un possibile valore tra “0000” (0) e “1111” ( 8+4+2+1 = 15 ) dando un totale di 16 diverse combinazioni di numeri da 0 a 15. Non dimenticate che anche “0” è una cifra valida.
Ricordiamo dal nostro primo tutorial sui numeri binari che un gruppo di cifre a 4 bit è chiamato “nibble” e poiché 4 bit sono anche necessari per produrre un numero esadecimale, una cifra esadecimale può anche essere pensata come un nibble, o mezzo byte. Quindi due numeri esadecimali sono necessari per produrre un byte completo che va da 00 a FF.
Inoltre, poiché 16 nel sistema decimale è la quarta potenza di 2 ( o 24 ), c’è una relazione diretta tra i numeri 2 e 16 così una cifra hex ha un valore uguale a quattro cifre binarie così ora q è uguale a “16”.
A causa di questa relazione, quattro cifre in un numero binario possono essere rappresentate con una singola cifra esadecimale. Questo rende la conversione tra numeri binari ed esadecimali molto facile, e l’esadecimale può essere usato per scrivere grandi numeri binari con molte meno cifre.
I numeri da 0 a 9 sono ancora usati come nel sistema decimale originale, ma i numeri da 10 a 15 sono ora rappresentati da lettere maiuscole dell’alfabeto dalla A alla F comprese e la relazione tra decimale, binario ed esadecimale è data qui sotto.
Numeri esadecimali
Numero decimale | 4-bit Numero binario | Numero 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 | 11 | F |
16 | 0001 0000 | 10 (1+0) |
17 | 0001 0001 | 11 (1+1) |
Continuando verso l’alto a gruppi di quattro |
Utilizzando il numero binario originale da sopra 1101 0101 1100 11112 questo può ora essere convertito in un numero esadecimale equivalente di D5CF che è molto più facile da leggere e capire che una lunga fila di 1 e 0 che avevamo prima.
Quindi, usando la notazione esadecimale, i numeri digitali possono essere scritti usando meno cifre e con molte meno probabilità di errore. Allo stesso modo, convertire i numeri esadecimali in binari è semplicemente l’operazione inversa.
Quindi le caratteristiche principali di un sistema di numerazione esadecimale è che ci sono 16 cifre di conteggio distinte da 0 a F con ogni cifra che ha un peso o valore di 16 a partire dal bit meno significativo (LSB). Per distinguere i numeri esadecimali dai numeri denari, si usa un prefisso o un “#”, (Hash) o un “$” (Dollar sign) prima del valore effettivo del numero esadecimale, #D5CF o $D5CF.
Come la base di un sistema esadecimale è 16, che rappresenta anche il numero di simboli individuali utilizzati nel sistema, il pedice 16 è usato per identificare un numero espresso in esadecimale. Per esempio, il numero esadecimale precedente è espresso come: D5CF16
Conteggio con numeri esadecimali
Quindi ora sappiamo come convertire 4 cifre binarie in un numero esadecimale. Ma se avessimo più di 4 cifre binarie, come potremmo contare in esadecimale oltre la lettera finale F. La risposta semplice è ricominciare da capo con un altro set di 4 bit come segue.
0…a…9, A,B,C,D,E,F, 10…a…19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21….etc
Non ti confondere, 10 o 20 NON è dieci o venti è 1 + 0 e 2 + 0 in esadecimale. Infatti il venti non esiste nemmeno in esadecimale. Con due numeri esadecimali possiamo contare fino a FF che è uguale al decimale 255. Allo stesso modo, per contare più in alto di FF dovremmo aggiungere una terza cifra esadecimale a sinistra, quindi il primo numero esadecimale a 3 bit sarebbe 10016, (25610) e l’ultimo sarebbe FFF16, (409510). Il massimo numero esadecimale di 4 cifre è FFFF16 che è uguale a 65.535 in decimale e così via.
Rappresentazione di un numero esadecimale
MSB | Numero esadecimale | LSB | ||||||
168 | 167 | 166 | 165 | 164 | 163 | 162 | 161 | 160 |
4.3G | 2.6G | 16M | 1M | 65k | 4k | 256 | 16 | 1 |
Questa aggiunta di cifre esadecimali aggiuntive per convertire sia numeri decimali che binari in un numero esadecimale è molto facile se ci sono 4, 8, 12 o 16 cifre binarie da convertire. Ma possiamo anche aggiungere degli zeri a sinistra del bit più significativo, il MSB, se il numero di bit binari non è un multiplo di quattro.
Per esempio, 110010110110012 è un numero binario di quattordici bit che è troppo grande per solo tre cifre esadecimali, ma troppo piccolo per un numero esadecimale di quattro. La risposta è di AGGIUNGERE altri zeri al bit più a sinistra fino ad avere una serie completa di quattro bit binari o multipli di essi.
Aggiungimento di ulteriori 0 a un numero binario
Numero binario | 0011 | 0010 | 1101 | 1001 |
Numero Esadecimale | 3 | 2 | D | 9 |
Il vantaggio principale di un numero esadecimale è che è molto compatto e usando una base di 16 significa che il numero di cifre usate per rappresentare un dato numero è solitamente inferiore a quello binario o decimale. Inoltre, è facile e veloce da convertire tra i numeri esadecimali e quelli binari.
I numeri esadecimali Esempio No1
Convertire il seguente numero binario 1110 10102 nel suo equivalente esadecimale.
Numero binario = 111010102 | |||
Raggruppa i bit in quattro partendo da destra | |||
= | 1110 | 1010 | |
Trova l’equivalente decimale di ogni gruppo individuale | |||
= | 14 | 10 | (in decimale) |
Convertire in esadecimale usando la tabella sopra | |||
= | E | A | (in esadecimale) |
Allora, l’equivalente esadecimale del numero binario
1110 10102 è #EA16 |
Numeri esadecimali Esempio No2
Convertire il seguente numero esadecimale #3FA716 nel suo equivalente binario, e anche nel suo equivalente decimale o denario usando pedici per identificare ogni sistema di numerazione.
#3FA716
= 0011 1111 1010 01112
= (8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 32 + 4 + 2 + 1)
= 16,29510
Quindi, il numero Decimale di 16,295 può essere rappresentato come:-
#3FA716 in esadecimale
o
0011 1111 1010 01112 in binario.
Riassunto dei numeri esadecimali
Per riassumere. Il sistema di numerazione esadecimale, o Hex, è comunemente usato nei computer e nei sistemi digitali per ridurre grandi stringhe di numeri binari in un insieme di quattro cifre per noi facilmente comprensibili. La parola “Hexadecimal” significa sedici perché questo tipo di sistema di numerazione digitale usa 16 cifre diverse da 0 a 9, e da A a F.
I numeri esadecimali raggruppano i numeri binari in gruppi di quattro cifre. Per convertire una sequenza binaria in un numero esadecimale equivalente, dobbiamo prima raggruppare le cifre binarie in un insieme di 4 bit. Questi insiemi binari possono avere qualsiasi valore da 010 ( 00002 ) a 1510 ( 11112 ) che rappresentano l’equivalente esadecimale di 0 fino a F.
Nel prossimo tutorial sulla logica binaria vedremo come convertire intere stringhe di numeri binari in un altro sistema di numerazione digitale chiamato numeri ottali e viceversa.