Aller au contenu


Information tutoriel

  • Ajouté le: janv. 07 2009 08:25
  • Date Updated: juil. 12 2011 10:45
  • Lectures: 4583
 


* * * * *
0 Notes

Le binaire

Posté par Harry on janv. 07 2009 08:25
Le but de ce tutoriel est de vous expliquer comment compter avec des nombres entiers en binaire... ce qui peut être très utile en robotique (surtout si vous voulez faire un écran LCD avec un texte qui défile dessus... bon je m'égare là :P )

Sommaire :

1. Présentation de l'octet et de sa famille de bits...
2. Multiplication par deux
3. Division par deux
4. Somme décimale
5. Du binaire au décimal
6. Du décimal au binaire

Présentation de l'octet et de sa famille de bits...

Un bit est une unité informatique. Un bit peut prendre deux valeurs : 0 ou 1. Il n'y a pas d'autre nombre pour compter en informatique. En gros, pour compter en informatique, on utilise des octets. Un octet est composé de 8 bits ; chaque bit pouvant prendre deux valeurs, alors un octet peut prendre 256 valeurs différentes. Voici les premières :
0 = 00000000
1 = 00000001
2 = 00000010
3 = 00000011
4 = 00000100
5 = 00000101
6 = 00000110
7 = 00000111
8 = 00001000
9 = 00001001
10= 00001010
11= 00001011
12= 00001100
13= 00001101
14= 00001110
15= 00001111
16= 00010000
...
255 = 11111111

Un octet se lit TOUJOURS (j'insiste un peu...) de la droite vers la gauche : le bit0 est tout à droite, le bit1 est le second en partant de la droite, ... le bit7 est celui de gauche dans un octet.

Multiplication par deux

Pour multiplier un nombre décimal (les nombres habituels que vous connaissez, basés sur les 10 chiffres de base : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) par 2, on décale tous les bits vers la gauche...
Exemples : Le double de 2 est 4 et l'octet devient...
2 = 00000010
4 = 00000100
8 = 00001000

Le double de 3 est 6 et l'octet devient...
3 = 00000011
6 = 00000110
12= 00001100

Division par deux

La division par deux, ben... c'est pareil mais en décalant tous les bits vers la droite

Somme décimale

La méthode pour la somme décimale ("déc-" = 10) et celle pour la somme binaire ("bi-" = 2) sont identiques :
Exemples : 2 + 3 = 5 soit :

00000010
00000011
----------- (1 et 0, ça donne 1, donc on pose 1)
. . . . . . 1


00000010
00000011
----------- (1 et 1, ça donne 10 (lire un zéro), donc on pose 0 et on retient 1)
. . . . . 01


. . . . 1
00000010
00000011
----------- (on pose le 1 et c'est bon !)
00000101 = 5 !!!

Du binaire au décimal

Un nombre se calcule mathématiquement de la façon suivante pour passer du binaire au décimal :
00000001 = 2^0
00000010 = 2^1
00000100 = 2^2
00001000 = 2^3
...
10000000 = 2^7

Ainsi, le nombre : 01010101 = 2^6 + 2^4 + 2^2 + 2^0 = 85

Du décimal au binaire

Un nombre se calcule en faisant la division dite "euclidienne" (bref vous posez la division comme au primaire) du nombre par 2, puis du dividende de cette division par 2, et ainsi de suite pour passer du décimal au binaire. En faisant cela, écrivez systématiquement les restes successifs sur une feuille (les restes sont tous des 0 et des 1...). Mais attention au piège ! L'ordre dans lequel vous allez les écrire sera l'ordre inverse ! En clair, pour avoir le nombre binaire, inversez l'ordre des restes, et rajoutez le nombre de "0" nécessaires devant la suite obtenue de telle façon à ce qu'il y ait 8 chiffres (0 et 1) inscris à la suite.

Exemple : transcrire 67 en binaire...
67 | 2
07 |---
01 |33

Suite des restes actuel = 1

33 | 2
13 |---
01 |16

Suite des restes actuel = 11

16 | 2
00 |---
00 |8

Suite des restes actuel = 110

8 | 2
0 |---
0 |4

Suite des restes actuel = 1100

4 | 2
0 |---
0 |2

Suite des restes actuel = 11000

2 | 2
0 |---
0 |1

Suite des restes actuel = 110000

1 | 2
1 |---
1 |0

Suite des restes actuel = 1100001

Et on s'arrête lorsque le dividende vaut 0 ! Alors là on inverse la suite des restes : 1000011, puis on rajoute le nombre de zéros nécessaires pour avoir 8 chiffres d'affilés : 67 = 01000011 - ce qui se vérifie avec la méthode précédente : 2^6 + 2^1 + 2^0 = 64 + 2 + 1 = 67 !!!

Autre exemple : Transcrire 16 en binaire...
16 | 2
00 |---
00 |8

8 | 2
0 |---
0 |4

4 | 2
0 |---
0 |2

2 | 2
0 |---
0 |1

1 | 2
1 |---
1 |0

Suite des restes : 00001 qui s'inverse en 10000 d'où 00010000 = 2^4 = 16

J'espère que ce tutoriel vous sera utile