convbinhexa

Transformation d'un nombre écrit en base deux (binaire) vers la base seize (hexadécimale).


Pourquoi si n = 10001101 base deux, alors on peut regrouper par paquets de quatre bits
et en déduire la forme hexadécmale de n.

On a:
n = 1*2^7 + 0*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0

n = (1*2^3 + 0*2^2 + 0*2^1 + 0*2^0)*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0

n = (1*2^3 + 0*2^2 + 0*2^1 + 0*2^0)*16^1 + (1*2^3 + 1*2^2 + 0*2^1 + 1*2^0)*16^0

n = (1000)*16^1 + (1101)*16^0

Pour avoir n en hexadécimal il suffit de connaitre les correspondances suivantes:

base dix base deux base seize base dix base deux base seize
0 0000 0 8 1000 8
1 0001 1 9 1001 9
2 0010 2 10 1010 A
3 0011 3 11 1011 B
4 0100 4 12 1100 C
5 0101 5 13 1101 D
6 0110 6 14 1110 E
7 0111 7 15 1111 F


Donc finalement:  n = 8*16^1 + D*16^0

soit n = 8D (en base 16)

Autres exemples:

E1:
n = 101110111111001000  (en base 2)

En regroupant par paquets de quatre bits on obtient:

n = (0010)*2^16 + (1110)*2^12 + (1111)*2^8 + (1100)*2^4 + (1000)*2^0

n = (0010)*(2^4)^4 + (1110)*(2^4)^3 + (1111)*(2^4)^2 + (1100)*2^4 + (1000)*2^0

n = 2*16^4 + E*16^3 + F*16^2 + C*16^1 + 8*16^0

n = 2EFC8  (en base seize)

E2:
n = 11110010110001010111000110101

n = 0001 1110 0101 1000 1010 1110 0011 0101

n = 1E58AE35