Decimali, Binari & C
Convertite(vi al)l' Hex !
|
Convertite(vi al)l' Hex !
Come abbiamo visto, si possono convertire numeri da una base ad un' altra con
semplici operazioni, molto chiare per chi ha capito i concetti che stanno alla
base della numerazione.
Anche gli esadecimali possono essere convertiti in altre basi e viceversa con
metodi manuali.
Ad esempio, convertiamo un numero binario in uno esadecimale.
Un numero esadecimale di due cifre equivale ad un
numero binario di 8 cifre, ovvero una cifra esadecimale equivale a 4 cifre
binarie.
Se vogliamo sapere come diventa il binario 10100101 in esadecimale, possiamo
procedere come segue :
- dividiamo il numero binario in due gruppi di 4 cifre : 10100101 =
1010 | 0101
- convertiamo ogni gruppo di 4 cifre nella cifra esadecimale corrispondente
10100101 = 1010 | 0101 = A | 5
- quindi 10100101base2 = A5base16
Altro esempio : convertire il binario 1110011100 in esadecimale
1110010011base2 = 11 | 1001 | 1100 = 3
| 9 | C = 39Cbase16
Come si vede, c'è
una strettissima aderenza tra esadecimale e binario: entrambi parlano dello
stato dei bit, il primo in maniera sintetica, il secondo in maniera esplicita.
Per convertire un esadecimale in binario il procedimento è
altrettanto semplice. Convertiamo l' hex DAD0 in binario
-
consideriamo singolarmente ogni cifra esadecimale ; DAD0 = D
| A | D | 0
-
sostituiamo alla cifra l' equivalente binario : D =1101,
A=1010, 0=0000
per cui DAD0 = D | A | D | 0 = 1101 | 1010 | 1101 | 0000
-
quindi DAD0base16 = 1101101011010000base2
Altro esempio : convertire il binario F0CB in esadecimale
F0CBbase16 = F | 0 | C | B =
1111 | 0000 | 1100 |1 011 =
= 1111000011001011base2
Più complessa è la conversione tra esadecimale e decimale, in
quanto non esiste più una corrispondenza così diretta come col binario. E ci
si può dare ragione del fatto semplicemente considerando che il 16 è una
potenza di 2 ( 2^4 = 16), mentre 10 ha come divisori 2 e 5. E 5 non è
divisibile per 2 senza resto.
Convertiamo un numero da esadecimale a decimale, ad esempio 3C1F
(tre ci uno effe).
-
considerare che la prima cifra a destra rappresenta unità :
F = 15
-
la seconda cifra da destra va moltiplicata per 16 = 1 * 16 =
16
-
la terza cifra va moltiplicata per 16^2 : C = 12, quindi 12
* 16^2 = 12 * 256 = 3072
-
la quarta cifra va moltiplicata per 16^3 : 3 * 16^3 =
3 * 4096 = 12288
-
ecc. per eventuali altre colonne, moltiplicando per una
ulteriore potenza di 16
-
sommando i risultati delle singole operazione ottengo il
valore decimale :
3C1Fbase16 |
= |
(3 * 16^3) + (C * 16^2) + (1 * 16^1) + (F * 16^0) |
= |
|
= |
(3 * 4096) + (12 * 256) + (1 * 16) + (15 * 1) |
= |
|
= |
12288 + 3072 + 16 + 15 |
= 15391base10 |
Altro esempio: convertire 10E22A (dieci e ventidue a) da
esadecimale a decimale
10E22Abase16 |
= |
(1 * 16^5) + (0 * 16^4) + (E *16^3) + (2 * 16^2) + (2 * 16^1) +
(A * 16^0) |
= |
|
= |
(1 * 1048576) + (0 * 65536) +( 14 * 4096) + (2 * 256) + (2 * 16) +
(10 * 1) |
= |
|
= |
1048576 + 0 + 57344 + 512 + 32 + 10 |
= 1106474base10 |
Di nuovo, una volta capito il meccanismo, Calcolatrice ci
risparmia questi conti noiosi.
Ma andiamo avanti.
|