Notions abordées

Représentation binaire

Habituellement, nous représentons les valeurs entières dans le système décimal, on dit aussi en base 10. Nous utilisons les dix chiffres de 0 à 9. La position des chiffres définit la valeur associée à ce chiffre. Par exemple, 542 est compris comme

542 = 5 x 100 + 4 x 10 + 2

Les différents chiffres correspondent aux puissances successives de 10 :

542 = 5 × 102 + 4 × 101 + 2 × 100

L'information numérique, qu'il s'agisse de valeurs entières, de textes, d'images, ou de sons est en fin de compte représentée par des suites de 0 et de 1. On parle de bit : un bit peut prendre deux valeurs, 0 ou 1.

Le mot bit vient de l'anglais binary digit.

Le système binaire permet d'écrire les valeurs entières en n'utilisant que ces les deux chiffres 0 et 1.
On utilise alors la base 2.

De même que pour la base 10, les positions des chiffres sont associées aux puissances successives de 2

20 = 1 ;  21 = 2 ;  22 = 4 ;  23 = 8 ;  24 = 16 ;  25 = 32 ;  26 = 64 ; etc.

Ainsi la valeur entière qui correspond à la représentation binaire 101010 est

1 × 25 + 0 × 24 + 1 × 23 +  0 × 22 + 1 × 21 + 0 × 20 = 1 × 32 + 0 × 16 + 1 × 8 +  0 × 4 + 1 × 2 + 0 × 1
                                                                      = 42

Il nous faut pouvoir indiquer que 101010 est une représentation binaire et non une représentation décimale, qui serait comprise cent un mille dix (ou encore une représentation dans une autre base...).

On notera 1010102, ou 101010.

On distingue donc les valeurs entières (les entiers) et leur représentation.

À une valeur entière donnée est associée une représentation décimale, mais aussi une représentation binaire.

Donnez les valeurs entières représentées par (100)2, (10101)2, (101)2, (00101)2.

Comparez les valeurs entières représentées par (11)2 et (100)2, (111)2 et (1000)2.

Quelle est la représentation binaire de 14 et 78 ?
De manière générale, quelle méthode employer pour trouver la représentation binaire d'une valeur entière ?

Octets

Dans la mémoire des ordinateurs, les bits sont souvent regroupés par huit. On parle alors d'octet.
Un octet est composé de 8 bits, soit 8 chiffres binaires.
On peut donc exprimer un entier en un mot binaire de 8, 16,32 ou 64 bits.
Ainsi sur un octet, on peut représenter les entiers de 0 à 1111 1111 = 255.
Le bit le plus à gauche est appelé bit de poids fort.
Le bit le plus à droite est appelé bit de poids faible.
Montrer qu'avec un mot de n bits on peut représenter les nombres de 0 à 2n-1.
Exprimer en base deux les nombres 3, 6 et 12.
Trouver une méthode pour multiplier par 2 un nombre exprimé en base 2.
Déterminer également une méthode permettent de diviser par 2 un nombre exprimé en base 2.
Traditionnellement:
1 kilo-octet = 1 Ko = 210octets = 1024 octets.
1 méga-octet (Mo) = 220 octets = 1 048 576 octets.
1 giga-octet (Go) = 230 octets = 1 073 741 824 octets.
Attention, les préfixes kilo, méga, giga ainsi employés ne correspondent pas à la notation normalisée.

Représentation hexadécimale

La base hexadécimale (base 16) est la plus utilisée en informatique industrielle.
C’est une variante « compacte » du binaire (car 16 est une puissance de 2).
Même si le contexte parle de code binaire, les valeurs sont généralement exprimées en hexadécimal (« hexa »).
Les positions des chiffres sont associées aux puissances successives de 16:
Un entier peut s'écrire de manière unique comme somme de puissances de 16.
160 = 1 ; 161 = 16 ; 162 = 256; 163 = 4096 ; 164 = 65536; etc.
base 16 (hexadécimale) = { 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Ainsi la valeur entière qui correspond à la représentation héxadécimale 1E7A est donnée par:
(1E7A)16 = 1 x 163+ 14 x 162 + 7 x 16 1 + 10 x 160= 7802.
Trouver la représentation en base 16 du nombre 965.

Passage binaire à hexadécimal

un chiffre hexadécimal = 4 bits en binaire.
Pour passer du binaire à l'hexadécimal, la technique consiste à partager le mot binaire en blocs de 4 bits en commençant par le bit de poids faible puis de convertir chaque bloc en héxadécimal.
Exemple : N = (10111001000011001110001)2
                  = 0101 1100 1000 0110 0111 0001
                  = (5C8671)16
Inversement, chaque symbole hexadécimal peut se traduire en binaire sur 4 bits:
(53B0)16 = 0101 0011 1011 0000 = (0101001110110000)2

Supplément : Calcul booléen

Le terme booléen vient du nom du mathématicien britannique George Boole. Il est le créateur de la logique moderne qui s'appuie sur l'algèbre qui porte désormais son nom : l'algèbre de Boole.

Un booléen est une donnée dont la valeur ne peut prendre que deux états, soit l'état vrai soit à l'état faux. On utilise également le bit pour représenter des booléens : ainsi un 0 représente la valeur faux et un 1 représente la valeur vrai.

Opérateurs booléens

On définit sur ces valeurs booléennes trois opérations : la négation, la conjonction et la disjonction, également appelées le NON, le ET et le OU logiques.

Le NON logique

Le NON logique d'un booléen a se définit par :

a NON a
0 1
1 0
NON a vaut VRAI si et seulement si a vaut FAUX.
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Le ET logique

Le ET logique entre deux booléens a et b se définit par :

a b a ET b
0 0 0
0 1 0
1 0 0
1 1 1
a ET b vaut VRAI si et seulement si a vaut VRAI et b vaut VRAI
Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Le OU logique

Le OU logique entre deux booléens a et b se définit par :

a b a OU b
0 0 0
0 1 1
1 0 1
1 1 1
a OU b vaut VRAI si et seulement si a vaut VRAI ou b vaut VRAI

Cet opérateur peut également être défini par sa table de vérité présentée ci-contre.

Equivalences

Il est possible de définir l'opérateur OU logique à partir du NON logique et du ET logique. En effet, si a et b sont des booléens alors a OU B = NON ((NON a) ET (NON B)).

On peut utiliser les tables de vérités pour démontrer cette égalité. On construit une table dans lesquelles les colonnes représentent les différentes sous-expressions dont nous avons besoin. Les contenus des colonnes sont construits en appliquant aux colonnes connues les tables de vérité connues définies ci-dessus.

Dans notre cas en plus de a, b, parmi les expressions utiles à notre calcul on trouve NON a, NON b. Une fois la table remplie pour ces deux expressions on peut déterminer celle de l'expression (NON a) ET (NON b) : si on définit x=NON a et y= NON b, alors (NON a) ET (NON b)=x ET y.

a b NON a NON b (NON a) ET (NON b)
x y x ET y
0 0 1 1 1
0 1 1 0 0
1 0 0 1 0
1 1 0 0 0

On complète alors la table avec les expressions NON ((NON a) ET (NON b)) et (a OU b)

a b NON a NON b (NON a) ET (NON b) ((NON a) ET (NON b)) (a OU b)
x y (x ET y) = z NON z
0 0 1 1 1 0 0
0 1 1 0 0 1 1
1 0 0 1 0 1 1
1 1 0 0 0 1 1

L'égalité des contenus des deux dernières colonnes démontrent l'équivalence des deux expressions.

  1. Trouvez une expression équivalente à a ET b construite uniquement à partir des opérateurs NON et OU.
  2. Démontrez que votre proposition est correcte à l'aide des tables de vérité.
  1. Démontrez les règles de distributivité suivantes :
    1. a ET (b OU c) = (a ET b) OU (a ET c)
    2. a OU (b ET c) = (a OU b) ET (a OU c)
  2. Démontrez les lois de Morgan :
    1. NON (a OU b) = (NON a) ET (NON b)
    2. NON (a ET b) = (NON a) OU (NON b)
a b a XOR b
0 0 0
0 1 1
1 0 1
1 1 0
On rencontre également défini l'opérateur OU-exclusif, également appelé XOR (pour "eXclusive OR"). Vous trouvez sa table de vérité ci-contre.
  1. Démontrez l'équivalence : a XOR b = (a ET (NON b))) OU ((NON a) ET b)

Application : les masques de sous-réseau

Très largement inspiré de cet article de Wikipedia.

Les adresses réseau des ordinateurs sont également appelé adresse IP, pour Internet Protocol. Les adresses IP de version 4, IPv4, sont codés sur 32 bits. Elle est généralement représentée en notation décimale avec quatre nombres compris entre 0 et 255, séparés par des points, ce qui donne par exemple : 192.168.100.2.

Les adresses réseau de type IPv4 sont composées de deux parties : le sous-réseau et l'hôte. Les masques de sous-réseau utilisent la même représentation que celles des adresses IPv4. Bien que la norme IPv4 n'interdise pas que la partie significative du masque contienne des bits à 0, on utilise en pratique des masques constitués (sous leur forme binaire) d'une suite de 1 suivis d'une suite de 0, il y a donc 32 masques réseau possibles. Un exemple possible est le masque 255.255.255.0.

Pour obtenir l'adresse du sous-réseau on applique l'opérateur ET entre les notations binaires de l'adresse IPv4 et du masque de sous-réseau. L'adresse de l'hôte à l'intérieur du sous-réseau est quant à elle obtenue en appliquant l'opérateur ET entre l'adresse IPv4 et la négation (NON) du masque.

  1. Calculez le code binaire correspondant à l'adresse 192.168.100.2 (ou partez de l'adresse de votre machine).
  2. Calculez le code binaire correspondant au masque 255.255.255.0.
  3. Calculez l'adresse binaire du sous-réseau puis donnez sa forme décimale.
  4. Calculez l'adresse hôte puis donnez sa forme décimale.

Vers l'électronique et le calcul

A chaque porte est associée une représentation graphique. Voici pour les portes ET et XOR :
porte ET porte XOR
Image tirée de Wkimedia Commons

Les opérations logiques évoquées ci-dessus sont mises en œuvre en électronique sous forme de portes logiques. Ainsi les circuits électroniques calculent des fonctions logiques de l'algèbre de Boole. Pour chacun des opérateurs logiques évoquées ci-dessus (et d'autres) il existe donc des portes logiques appelés porte ET, porte NON, etc. Les valeurs vrai et faux sont représentées par deux niveaux de tension, haut et bas. Un circuit de type porte ET dispose donc de deux entrées et une sortie et la valeur du niveau de tension en sortie dépend des niveaux de tension appliquées à chaque entrée, en respectant la table de vérité du ET. Les portes peuvent être connectées entre elles pour réaliser des circuits logiqueset on peut ainsi réaliser des calculs.

Prenons l'exemple de ce circuit :

demi additionneur

Il est appelé demi-additionneur car il réalise l'addition de 2 bits (A et B), le résultats de cette somme est représentée par S et la retenue éventuelle par R.

Vérifiez, avec une table de vérité par exemple, que S et R correspondent bien aux valeurs de la somme et de la retenue sur 1 bit de A et B.
Circuit intégré 7400 contenant 4 portes NON-ET (NAND). Les deux autres broches servent à l'alimentation 0V / 5V.
circuit intégré 7400
Images tirées de Wkimedia Commons

A partir de ce circuit on peut en construire d'autres plus complexes permettant d'additionner des nombres de plusieurs bits. Voir sur cette page par exemple.

Et dans le même esprit, l'utilisation combinée des différentes portes de base permet de construire des circuits intégrés de plus en plus complexes, jusqu'au micro-processeur qui réalise les calculs au sein d'un ordinateur. Il "suffit" de trouver la bonne organisation. C'est un peu comme les Légo en somme... Vous pourrez trouver ici quelques compléments.