Numération
binaire &
hexadécimale


Comment sont représentées les informations dans un ordinateur ?

D'abord, quelles informations un ordinateur traite-t-il généralement ?
  1. des textes, donc des caractères : lettres a, b, U, Z, ... ou signes : % * $ £ ...
  2. des nombres entiers naturels : 1, 20123, entiers relatifs : - 12; ou réels : 3.14116, 0.57 .
  3. des etats de capteurs TOR dans des machines : fins de course, interrupteurs de feuillure, boutons poussoirs, etc.
  4. des grandeurs physiques analogiques : température d'une cuve, vitesse d'un moteur, etc

En cliquant sur les liens actifs ci-dessus, vous serez dirigé[e] sur le thème correspondant.

Bien entendu, à plus haut niveau, un ordinateur peut traiter des objets complexes tels des sons, des images pluridimensionnelles, fixes ou non, des couleurs etc. ; toutes ces représentations se font cependant à partir des quatre catégories énoncées plus haut.
Pour approfondir, voir l'hyperlien : Sommaire du cours de traitement des signaux.

 


Nombres entiers

Nombres entiers : divers systèmes de numération


Le système décimal, dit " à base10 " pour rappeler que les nombres s'y écrivent avec dix chiffres :
0 1 2 3 4 5 6 7 8 9,
n'est pas le plus pratique pour réaliser les opérations que l'on rencontre en informatique.

Nous y sommes tellement habitués que certains attribuent à tort au nombre " dix " constituant sa base, l'origine de la simplicité avec laquelle nous pouvons effectuer la plupart des applications. En réalité, nous pourrions montrer que si on s'y était habitué, on aurait pu effectuer les mêmes opérations avec autant de facilité dauns une autre base que 10.

3 927 décimal = 3.103 + 9.102 + 2.101 + 7 (.100)


La base " dix " provient peut-être d'une méthode primitive de comptage sur les doigts.
Si elles n'étaient pas socialement aussi mal organisées, les araignées auraient certainement imposé un système à base " huit " dit " octal ", d'ailleurs utilisé dans certaines machines informatiques et utilisant huit chiffres : 0 1 2 3 4 5 6 7.

5 274 octal = 5.83 + 2.82 + 7.81 + 4 (.80)


Pour des raisons techniques, les composants électroniques constituant la partie physique des ordinateurs, ne reconnaissent que deux niveaux de tension électrique que l'on a appelés " niveau haut" et " niveau bas"
H (high) et L (Low).
En mathématisant ce concept, ces niveaux se voient attribuer les chiffres 0 et 1 respectivement dans un système de numération binaire.
L'ordinateur compte sur un doigt !

1101 binaire = 1.23 + 1.22 + 0.21 + 1(.20)


Les nombres binaires sont très pratiques quand ils représentent des états de capteurs ou d'actionneurs "Tout Ou Rien" industriels, mais catastrophiques en calcul : essayez de trouver l'équivalent décimal du nombre : 1101010010110111 par la formule des puissances de 2 précédente. C'est laborieux !

Un moyen terme entre les avantages et les inconvénients des notations décimale et binaire a été trouvé par l'emploi de l'écriture à base 16 dite " hexadécimale " utilisant les seize chiffres suivants :
0 1 2 3 4 5 6 7 8 9 A B C D E F.

Un exemple :

A3F2 hexadécimal = 10.163 + 3.162 + 15.161 + 2.160
Notez que l'on a traduit 'A' par 10 et 'F' par 15



Mais pourquoi diable éprouve-t-on le besoin de compter en base 16 ?
Réponse : par ce que cela simplifie grandement les conversions binaire-décimal !

Exemple :

Reprenons l'horrible nombre binaire de tout-à l'heure : 1101010010110111
Scindons-le en groupes de 4 chiffres :
1101
0100
1011
0111
Traduisons les groupes en hexadécimal :
D
4
B
7
Valeurs des groupes en décimal
13.163
4.162
11.161
7.160

 

Une calculatrice, vite !
13.163 + 4.162 + 11.161 + 7 = 13.4096 + 4.256 + 11.16 + 17 = 54 465
Pas vraiment difficile en somme !


Un nombre binaire de 8 bits s'appelle un octet (byte en anglais)
Un octet permet d'écrire 256 nombres de 0 à 255

Un nombre binaire de 16 bits est généralement appelé "word " en anglais.
Un tel groupement de 16 bits permet d'écrire 65 536 nombres de 0 à 65 535.

Un nombre binaire de 32 bits est généralement appelé " double word " ou " dword " en anglais.
Il permet d'écrire les nombres de 0 à 4 294 967 295

 

 


Nombres négatifs

L'opposé d'un nombre x est, par définition, le nombre y tel que x + y = 0
On le note -x ; soit : y = -x ; ou encore : x + (-x) = 0

Une difficulté apparaît dans toutes les opérations faites avec des nombres binaires sur les calculateurs numériques réels : les nombres binaires y ont un nombre de chiffres fixe (soit 8 soit16 soit 32 soit 64 bits généralement suivant les processeurs).

C'est cette même limitation qui apparaît sur les compteurs kilométriques de véhicules. Limités par exemple à six chiffres, lorsque le comteur arrive à 999 999, il retombe à 000 000.

Tout ce qui va être dit sur les opérations mathématiques suppose que les opérations se font sans dépassement de la valeur maximale que peut prendre les format binaire choisi (nombre maximum de bits).

Si les nombres manipulés dépassent cette valeur il faudra avoir recours à un nombre supérieur de bits pour représenter les nombres.

Pour simplifier, nous allons partir de nombres de 4 bits.Les nombres extrêmes dans ce format sont 0000 et 1111, soit en décimal : 0 et 15. Ce sont des entiers positifs..Il exsite deux manières d'écrire dans ce format à la fois des nombres positifs et leurs opposés :


Convention dite " à Bit de signe"

Exemples :

Binaire 4 Bits
Décimal
0101
+ 5
1011
- 3
0111
+ 7
1111
- 7
0000
+ 0
1000
- 0

Cette méthode semble très simple.
Pour n bits les valeurs extrêmes sont : 2( n - 1 ) - 1
On peut écrire autant de positifs que de négatifs.

Mais le revers de la médaille est plus sombre :

Binaire 4 Bits
Décimal
Nombre 1
0100
+ 4
Nombre 2
1011
- 3
Somme
1111
- 7
Faux !

 


Convention dite du "Complément à deux"

C'est la convention la plus utilisée.

Exemples :

Binaire 4 Bits
Décimal
Zéro
0000
0
 
Nombre x
0101
+ 5
 
- x
1011
- 5
Par définition

N.B. La soustraction binaire se fait comme la décimale : avec retenues et reports.

Exemple :
En soustrayant les bits à droite de 0000 - 0101
on déclare : 0 - 1 = 1 je retiens 1 que je reporte sur le zéro suivant de 0000,
et ainsi de suite ...
Arrivés au bit le plus à gauche, 1 + 1 = 0 je retiens 1
que je ne reporte pas puisque je sors du format 4 bits.

On peut ainsi construire le tableau suivant :

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

Ce code est moins directement compréhensible pour les nombres négatifs,
mais les opérations se font de la même manière pour les positifs comme pour les négatifs
(ce qui est primordial pour les processeurs de calcul).

Binaire 4 Bits
Décimal
Nombre 1
0100
+ 4
Nombre 2
1101
- 3
Voir tableau précédent
Somme
0001
+ 1
Exact !

Avec 8 bits :

Binaire
Décimal
Hexadécimal
0111 1111
+ 127
7F
0111 1110
+ 126
7E
...
...
...
0000 0001
+ 1
1
0000 0000
0
0
1111 1111
- 1
FF
1111 1110
- 2
FE
...
...
...
1000 0001
- 127
81
1000 0000
- 128
80

Avec 16 bits :

Binaire
Décimal
Hexadécimal
Formules
0111 1111 1111 1111
+ 32 767
7FFF
2(16-1)- 1
0111 1111 1111 1110
+ 32 766
7FFE
...
...
...
0000 0000 0000 0001
+ 1
1
0000 0000 0000 0000
0
0
1111 1111 1111 1111
- 1
FFFF
1111 1111 1111 1110
- 2
FFFE
...
...
...
1000 0000 0000 0001
- 32 767
81
- 2(16-1)+ 1
1000 0000 0000 0000
- 32 738
80
- 2(16-1)

Lorsque l'on écrit un nombre binaire pourvant premdre des valeurs positives ou négatives (entier relatif),
il est indispensable d'en préciser le format (nombre de bits) dans lequel il est écrit.

Exemple:
Le nombre 1111 représente, en écriture décimale :


Technique particulière

Pour obtenir l'opposé d'un nombre écrit en binaire relatif dans la convention du complément à deux on change tous ses bits et on ajoute un. Il faut bien entendu opérer dans le format complet.

Exemple :
En binaire, dans la convention du complément à deux et sous format 4 bits, n = 101
Quel est son opposé ?

D'abord, faisons apparaître le format complet : n = 0101
Changeons tous ses bits : 1010
Ajoutons 1 : 1011
Vérifions sur le tebleau situé plus haut dans cette page
que n = 101 = 5 et que 1011 = -5

Cette technique peut être mise à profit dans certains opérateurs de calcul
ou pour simplifier la recherche de la valeur absolue d'un nombre négatif donné en binaire...


Retour à "Sélection d'articles"
Retour en page d'accueil