L’ordinateur actuel existe suite à l’invention d’un composant essentiel : le transistor.
Composant éléctronique | Symbole électronique | Version miniaturisée (taille environ 4 µm) |
Dans son fonctionnement le plus simple le transistor peut prendre deux états :
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 ).
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.
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 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 :
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 | |
... |
cette vidéo est facultative cependant vous pouvez la parcourir si c'est encore flou:-)
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
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 :
Nous réaliserons avec Python des fonctions de conversion du décimale vers binaire.
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 !)
on ajoute les valeurs des bits multiplié par 2 à la puissance la position du bit.
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 :