écriture d'un entier en binaire

Le monde se divise en 10 catégories ... Il y a ceux qui comprennent le binaire. Et les autres.


Un peu d’électronique

L’ordinateur actuel existe suite à l’invention d’un composant essentiel : le transistor.

transistor1transistor2transistor3
Composant
éléctronique
Symbole électroniqueVersion miniaturisée
(taille environ 4 µm)

Dans son fonctionnement le plus simple le transistor peut prendre deux états :

  • Un état bloqué : dans cet état, le transistor ne permet pas le passage du courant.
  • Un état passant (on dit aussi saturé) : le transistor est en état de conduction. Le courant passe.

Le système décimal

Pour que vous compreniez le fonctionnement du binaire, et des systèmes de comptage en général (plus communément appelés bases), nous allons nous appuyer sur le fait que vous sachiez compter...en base 10 ( en décimal ).

  • Il y a 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
  • Avec ces derniers, on peut compter jusqu'à 9.

Pour compter au-delà de 9, il faut changer de rang.

Cela signifie que si le rang des unités est plein, il faut passer à celui des dizaines, puis des centaines, milliers et j'en passe.

  • Par exemple : à 19, le rang des unités est "saturé" (plein), car il contient le chiffre 9, et il n'y a pas (dans la base 10) de valeur plus élevée. Il faut donc incrémenter le rang suivant (celui des dizaines) puis remettre à zero le rang des unités. Le nombre suivant 19 est donc 20. (Incroyable !)
  • 386 = 3 * 1.10^2 + 8* 1.10^1 + 6 * 1.10^0

    Ici 386 vient d'être décomposer en puissance de 10 (unités, dizaines, centaines, etc).

En informatique nous utilisons plusieurs bases, dans ce cours nous nous limiterons à une présentation de la base 2. Nous verrons dans de prochains cours comment effectuer un certains nombres d'opérations dans cette base.

Nous serons amener également à découvrir l'hexadécimal ainsi que le codage des nombres réels.

Le binaire

Présentation

Le binaire est le système de numération à la source de la conception d'un ordinnateur. Les composants d'un ordinateur fonctionnent grâce au courant électrique. L'information est donc à deux états : présence de courant 1 et absence de courant 0.

En binaire les rangs sont appelés bit, qui est la contraction de "binary digit", littéralement "chiffre binaire". Par exemple, le nombre 10011 ocupe 5 bits. Là où tout se complique, c'est que comme je l'ai expliqué, chaque rang en binaire ne peut avoir que deux valeurs (binaire = base 2) différentes : 0 ou 1. Pour la base 10, chaque rang représente une puissance de 10, pour la base 2, chaque rang occupe une puissance de 2.

Observer et compléter le tableau suivant qui va vous faire compter en binaire jusqu'à 10 :

Voici comment compter en binaire jusqu'à 10 :
Nombre en décimal Nombre en binaire Le pourquoi du comment
0 0 Pour l'instant, ça va.
1 1 Là encore, c'est simple.
2 10 Le premier rang ayant été rempli, on passe au suivant !
3 11 On re-remplit le rang 1.
4 100 Le rang 2 est plein, le rang 1 aussi, qu'à cela ne tienne, on passe au suivant.
5 101 On continue en suivant la même méthode.
6 110
7 111
8 1000 On commence le rang 4.
9 1001 On continue comme tout à l'heure.
10 1010
...
Retenez juste ceci : entamer le rang suivant quand l'actuel est plein.

Pour bien comprendre

cette vidéo est facultative cependant vous pouvez la parcourir si c'est encore flou:-)

Conversion décimale vers binaire

Pour l'instant, on n'a compté que jusqu'à 10. Mais pour les plus grands nombres, la méthode précédente peut se révéler fastidieuse

La méthode :

Il existe bien sûr plusieurs méthodes de conversion, mais nous allons étudier la plus simple et la plus rapide. Il s'agit de la méthode reposant sur la division euclidienne.

Cette méthode, en plus d'être facile à utiliser en programmation (c'est un algorithme) est une des meilleures lorsqu'il s'agit de traiter les grands nombres.

Voici la procédure :

  • On prend le nombre en base 10 (forme normale).
  • On le divise par 2 et on note le reste de la division (soit 1 soit 0)
  • On refait la même chose avec le quotient précédent, et on met de nouveau le reste de côté.
  • On réitère la division, jusqu'à ce que le quotient soit 0.
  • Le nombre en binaire apparaît alors : il suffit de prendre tous les restes de bas en haut.

  • 185÷2=92+1
  • 92÷2=46+0
  • 46÷2=23+0
  • 23÷2=11+1
  • 11÷2=5+1
  • 5÷2=2+1
  • 2÷2=1+0
  • 1÷2=0+1
  • Le quotient est nul, l'algorithme s'arrête.
L'écriture binaire de 185 est donc 10111001

Nous réaliserons avec Python des fonctions de conversion du décimale vers binaire.

Conversion binaire vers décimale

Je vous rassure tout de suite : c'est plus simple dans ce sens-là que dans l'autre.

Prenons un nombre au hasard, tel que 11010011. Il s'étale sur 8 rangs, et comme dit précédemment, chaque rang correspond à une puissance de deux.
Le premier rang (en partant de la droite) est le rang 0, le second est le 1, etc.

Pour convertir le tout en décimale, on procède de la manière suivante : on multiplie par 20 la valeur du rang 0, par 21 la valeur du rang 1, par 22 la valeur du rang 2, [...], par 210 la valeur du rang 10, etc.

Après ça, il ne reste plus qu'à remplacer les puissances de 2 par leurs valeurs et de calculer la somme : (Attention à bien partir de la droite !)


11010011_{binaire} = 1*1 + 1*2 + 0*4 + 0*8 + 1*16 + 0*32 + 1*64 + 1*128 = 211_{décimal}

on ajoute les valeurs des bits multiplié par 2 à la puissance la position du bit.


IP(v4)

L'adresse IP, Internet Protocol, est utilisé quand on fait du réseau( se reporter au cours sur le réseau). C'est un numéro d'identification qui est attribué à un élément du réseau.

Dans sa version la plus utilisée,Ipv4, elle est composée de 32 bits soit de 4 octets. 1 octet étant égal à 8 bits.
Il faut savoir manipuler du binaire quand on s'intéresse de près aux réseaux. (cf cours sur le réseau )

Lexique de ce cours :

  • ecriture en base 10
  • écriture en binaire
  • division euclidienne
  • adresse IP
  • reseau

Demander le programme !

  1. définir le système décimal.
  2. définir le système binaire.
  3. définir un bit.
  4. définir un octet
  5. définir l'IP(v4)
  1. la conversion binaire/décimale et réciproquement.
  2. l'estimation de l'amplitude des nombres codables avec un nombre de bits donné