Calcul binaire, héxadécimal, et plus si affinités…

Bases

Un bit est un chiffre binaire (binary digit), il prend la valeur 1 ou 0. Il ne faut pas confondre avec le terme byte qui signifie en anglais octet ! Soyez rigoureux dans la notation : 1 b = 1 bit et 1 B = 1 octet. Mathématiquement parlant, lorsqu’on compte en binaire, on compte en base de deux. Lorsque nous comptons normalement, nous comptons en base décimale (ou base de dix). Je vous invite à regarder sur Internet pour plus de précision sur les différentes bases.

Nous noterons (1)2 = (1)10.  C’est à dire 1 en base binaire équivaut à 1 en base décimale. Pour être plus efficace, et pour permettre à l’ordinateur de faire des calculs avec tous les nombres, on « forme » des paquets de bits. Ainsi 8 bits forment un octet. 1000 0000 est un octet.

(1000 0000)2 = (200)8 = (128)10 = (80)16.

Voici une autre méthode de notation :

1000 0000 = 200 Q = 128 D = 80 H.

Comment passons nous du binaire au décimal ?

On calcule en puissance de deux.

Exemple : 001 = (0*22) + (0*21) + (1*20)= 1.

Astuce pour les puissances de deux, en sachant que 20 = 1  :  2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096. (2^1 =2, 2^2 = 4, etc.).

Comment passons nous du décimal au binaire ?

Pour convertir du décimal au binaire, il vous suffit de diviser par 2 tant que le reste est égal à 0.

division => quotient, le reste vaut…

128/2 => 64, le reste vaut 0.

64/2 => 32, le reste vaut 0.

32/2 => 16, le reste vaut 0.

16/2 => 8, le reste vaut 0.

8/2 => 4, le reste vaut 0.

4/2 => 2, le reste vaut 0.

2/2 =>1, le reste vaut 0.

1 n’est pas un multiple de deux donc le reste ne vaudra pas 0, inutile d’aller plus loin.

Donc 128 = 1000 0000.

Autre méthode 1 :

Nous avons 128. Dans 128 on a 0 fois 256, par contre on a 1 fois 128. On calcule donc 128-128 qui est égal à 0.

Dans 0 on a 0 fois 64.  0 fois 32, 0 fois 16, 0 vaut 0 fois 8, 0 vaut 0 fois 4, 0 vaut 0 fois 2,  0 vaut 0 fois 0. Donc 128 = 1000 0000.

Essayons avec 167 pour mieux comprendre la méthode. Dans 167 on a 0 fois 256. Dans 167 on a 1 fois 128. On retire donc 128 à la valeur 167. Ce qui donne: 167-128 = 39. Dans 39 on a 0 fois 64 (64 = 26). On passe alors à la puissance inférieur. Dans 39 on a 1 fois 32. On fait comme auparavant, on retire 32 à 39, soit: 39-32 = 7. Dans 7 on a 0 fois 16. Dans 7 on a 0 fois 8. Dans 7 on a 1 fois 4. 7-4 = 3. Dans 3 on a 1 fois. 2.3-2 = 1. Dans 1 on a 1 fois 1 (c’est d’une évidence…! ).

(167)10 = (1010 0111)2

1 : Personnellement, je n’utilise pas trop cette méthode-là.

Comment passons nous du binaire à l’hexadécimal ?

Il faut toujours se dire : « HEXA = Paquets de quatre bits ».

1ère étape : faire des paquets de quatre bits 10000000 → 1000 0000

2ème étape : conversion 1000 → 8  et 0000 → 0 donc 1000 0000 = 80 H.

Comment passons nous du binaire à l’octal ?

Il faut toujours se dire : « OCTAL = Paquets de trois bits ».

1ère étape : faire des paquets de trois bits : 1000 0000 → 10 00 0 000 (le 10 en fait c’est 010).

2ème étape : on convertit normalement : 200 Q.

Tableau de conversion BIN → HEXA

0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Pour mieux comprendre, je vous conseille de lire ce cours.

Passer de l’hexadécimal au décimal, ou de l’octal au décimal ?

Moi personnellement, je passe d’abord par le binaire puis je reconvertit ensuite en décimal. Mais on peut convertir avec la même méthode que pour convertir du binaire en décimal. En binaire, on utilisait des puissances de 2, et bien en hexadécimal, par exemple, on utilisera des puissances de 16.🙂

Exemple :

0B 13 H = (0*16^3) + (11*16^2) + (1*16^1)+ (3*16^0) = 0 + 11*32 + 1*16 + 3*1 = 371.

Rappel : B = 11.

Code GRAY

000
001
011
010
110
111
101
100

Association de plusieurs octets.

  msb : Most Significiant Bit (bit de poids fort).

lsb : Least Significant Bit (bit de poids faible).

Little Endian : Méthode d’association de plusieurs octets adoptée par Intel. Il s’agit de   placer d’abord les bits de 7 à 0, puis les bits de 15 à 8.

Big Endian : contraire de Little Endian.

Exemple :

0100000000100001

Le msb est 0, et le lsb est 1.

L’association en Big Endian :

01000000
00100001

L’association en Little Endian :

00100001
01000000

Bonus de fin (parce que vous le valez bien)

Pourquoi les informaticiens confondent toujours Halloween et Noël ? Parce que 31 Oct = 25 Dec.

Une réflexion sur “Calcul binaire, héxadécimal, et plus si affinités…

  1. I’m still learning from you, but I’m improving myself. I definitely love reading all that is posted on your website.Keep the aarticles coming. I liked it!

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s