Systèmes de numération

("Apprendre à compter")

L'informatique utilise les systèmes de numération binaire et hexadécimal. Le but de la page est de comprendre parfaitement ces systèmes de comptage.

page précédente : calculs IP page précédente : TCP/IP

Base décimale et généralisation

La base 10 est la base utilisée partout par les humains pour compter, sûrement à cause des 10 doigts des mains.
À partir de l'usage courant de cette base, il est simple de tirer quelques règles générales et fondamentales pour présenter les systèmes de numération.

En base décimale, on utilise 10 chiffres (de 0 à 9)
 en base N, on utilise N chiffres. (R1)

Avec 2 chiffres on peut compter jusqu'à 99 (100 - 1) ; avec 3 chiffres, on compte jusqu'à 999 (1000 -1) ; ...
Autrement dit, avec 2 chiffres, on dénombre 100 = 102 valeurs différentes (de 0 à 99) ; avec 3 chiffres on dénombre 1000 = 103 valeurs (de 0 à 999) ; ...
 en base N, avec p chiffres, on dénombre Np valeurs différentes et on peut compter jusqu'à (Np - 1). (R2)

En réalité, on écrit et on dit les nombres à l'envers. On devrait écrire et dire l'unité (100) d'abord, puis la dizaine (101), puis la centaine(102), puis le millier (103), ...
En effet : 12 = 2.100 + 1.101 ; 123 = 3.100 + 2.101 + 1.102 ; 4321 = 1.100 + 2.101 + 3.102 + 4.103 ; ...
Dans un nombre, les chiffres devraient être classés suivant leur rang, c'est-à-dire suivant la puissance de la base à laquelle le chiffre est associé.
        
Dans la plupart des langues, on dit les nombres à l'envers sauf en allemand ou en arabe (cinquante-trois = dreiundfünfzig =  ثلاثة  و  خمسون ).
Un nombre se comprend comme une combinaison linéaire des puissances croissantes et successives de la base N. (R3)
soit le nombre (abc......xyz)N de p chiffres écrit dans la base N ;  (abc......xyz)N  =   z.N0 + y.N1 + x.N2 + ...... + c.N(p-3) + b.N(p-2) + a.N(p-1)
L'exposant de la puissance de N s'appelle le rang.
Les chiffres qui ont un rang élevé (a,b et c dans l'exemple) sont dits de "poids fort" ; les chiffres qui ont un rang petit (z, y et x) sont dits de "poids faible".
 

Exercice pratique

On dit que, sur ses doigts, on compte jusqu'à 10. Comment compter avec ses doigts le plus loin possible ?

L'idée est d'utiliser chaque main comme un chiffre ; avec chaque main, on peut montrer 6 chiffres, de 0 (poing fermé) à 5 (main ouverte)
On utilise donc alors la numération en base 6 (R1).
D'après (R2), avec 2 chiffres en base 6, on peut compter jusqu'à (62 - 1) = 35 ; en effet, en appliquant (R3), (55)6 = 5.60 + 5.61 = 5 + 30 =35
Le système sénaire (base 6) est utilisé en Papouaisie.

Mais on peut aller encore plus loin en considérant chaque doigt de la main comme un chiffre binaire. Par exemple, le doigt baissé est un 0 et le doigt levé est un 1.
On utilise donc alors la numération en base 2 (R1).
D'après (R2), avec 10 chiffres en base 2, on peut compter jusqu'à (210 - 1) = 1023 ;
en effet, en appliquant (R3),   (1111111111)2 = 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 = 1023
Le système binaire (base 2) est utilisé en électronique-informatique.

haut de page l'hexadécimal

 

Le système binaire

la base 2 ne comporte que 2 chiffres (0 et 1) et peut donc être utilisée pour compter tous les phénomènes technologiques qui fonctionnent en tout ou rien :
transistor bloqué ou passant, circuit électronique logique, aimantation nord ou sud, réflexion laser sur un trou ou sur une bosse, en fait, tout ce qui est relié ou traité par l'informatique ...
L'informatique qui repose sur la mémorisation éphémère ou durable de données, utilise une électronique rapide ; les données doivent pouvoir aussi être relues à tout moment.
 

Le bit et l'octet (bit and byte)

Un chiffre binaire (de valeur 0 ou 1) est appelé un bit
Pour coder l'information, on utilise principalement comme unité l'octet (un ensemble de 8 bits).
Avec un octet (byte en anglais), on peut décrire 256 valeurs différentes (de 0 à 255) ; 28 = 256
L'octet est une unité de comptage en informatique puisque c'est le plus petit élément de mémorisation (stockage) possible.
Les autres unités : Ko = 1024 octets (210 = 1024), le Mo = 1 048 576 octets (220 = 1048576), le Go = 230 octets (un peu plus d'un milliard), le To = 240 octets (un peu plus de mille milliards), ...

Conversion du binaire en décimal

Cette conversion se fait directement en appliquant (R3).
Par exemple, cette couleur ocre     s'obtient en RVB avec les 24 bits (11111011)(11010000)(10010111)
(11111011) = 20 + 21 + 23 + 24 + 25 + 26 + 27 = 1 + 2 + 8 + 16 + 32 + 64 + 128 = 251
(
11010000) = 24 + 26 + 27 = 16 + 64 + 128 = 208  ;  (10010111) = 20 + 21 + 22 + 24 + 27 = 1 + 2 + 4 + 16 + 128 = 151
Le codage en RVB de la couleur  
  peut donc s'écrire en décimal : (251, 208, 151).
On remarque que les nombres pairs se terminent par un 0 en binaire (valeur 0 au rang 0) et les nombres impairs se terminent  par un 1 en binaire (valeur 1 au rang 0).
 

Addition en binaire

Toutes les opérations arithmétiques sont bien sûr faisables en binaire, l'addition étant l'opération de base la plus importante.
Il suffit de bien gérer les retenues : (1)B + (1)B = (10)B  ;  (11)B + (1)B = (100)B ; ou encore (1000)B - 1 = (111)B
Voir ici un exemple plus complet.

Attention : dans la page consacrée aux calculs des sous-réseaux, les opérations effectuées sont des opérations logiques (AND) bit par bit ; ce ne sont pas des additions binaires.
 

Conversion du décimal en binaire

Une première méthode, utilisable pour des nombres assez simples, nécessite une bonne connaissance des puissances de 2.
Il s'agit de soustraire successivement des puissances de 2 au nombre donné puis au résultat de la soustracrion.

Une deuxième méthode, plus systématique et besogneuse, consiste à effectuer des divisions successives par 2 du nombre décimal à convertir, jusqu'à l'obtention d'un quotient nul.
Le relevé des restes des divisions dans le bon ordre donne le nombre en écriture binaire.
Voici un exemple explicatif.

binaire bas de page

Le système hexadécimal

Le système de numération en base 16 utilise 16 chiffres : de 0 à 9 plus A (10), B (11), C (12), D (13), E (14) et F (15).   -   "le sol n'est pas utilisé !" : blague de musicien  ;-(  -
L'hexadécimal est le système de numération des informaticiens, essentiellement parce qu'il permet de condenser l'écriture binaire, et donc d'avoir une lecture plus aisée des données brutes informatiques.

 

Conversions binaire - hexadécimal

 Un chiffre hexadécimal peut prendre 16 valeurs, ce qui correspond aux 16 = 24 valeurs que peuvent prendre un groupe de 4 bits.
On peut donc convertir réciproquement 4 bits (un quartet) en 1 chiffre hexadécimal :
(F)H = (1111)B  ;  (E)H = (1110)B  ;  (D)H = (1101)B  ; (C)H = (1100)B  ;  (B)H = (1011)B  ;  (A)H = (1010)B  ;  9 = (1001)B  ;  8 = (1000)B ; etc ...
Il faut toutefois être vigilant sur le rang des chiffres, en effectuant les conversions en commençant par les chiffres de rang faible ;
par exemple : 54 = (110110)B = (0011 0110)B = (3 6)H  ou encore   (D1)H = (11010001)B  ou enfin  (18)H = (0001 1000)B = (11000)B = 24 .

Donc l'écriture d'un octet en binaire peut être "condensée" en la remplaçant par 2 chiffres héxadécimaux (et inversement).

 
 Conversion de l'hexadécimal vers le décimal

Cette conversion se fait directement en appliquant (R3).
Un exemple : (ABCD)H = 13x160 + 12x161 + 11x162 + 10x163 = 13 + 12x16 + 11x256 + 10x4096 = 13 + 192 + 2816 + 40960 = 43981

Addition en hexadécimal

Toutes les opérations arithmétiques sont bien sûr faisables en hexadécimal ;
Il faut bien gérer les retenues : F + 1 = (10)H   ;   FF + 1 =  (100)H   ;  (1000)H  - 1 = FFF
Voici des exemples d''addition, opérations de base.
 

Conversions du décimal à l'hexadécimal

Les 2 méthodes ont déjà été expliquées pour la conversion du décimal vers le binaire ; ces 2 méthodes restent bien sûr valables,
mais en base 16 les calculs se compliquent rapidement car les puissances de 16 augmentent très vite : 160 = 1  ;  161 = 16  ;  162 = 256  ;  163 = 4096  ; ...

Exemples par la première méthode des soustractions successives de puissances de 16 :

La deuxième méthode qui consiste à effectuer des divisions successives par 16 du nombre décimal à convertir, jusqu'à l'obtention d'un quotient nul,
est la vraie méthode de conversion du décimal vers une autre base de numération.
Le relevé des restes des divisions dans le bon ordre donne le nombre en base 16.
En voici un exemple explicatif.

 

 Et maintenant que l'on sait compter, on peut utiliser une calculette !   ;-)

haut de page l'hexadécimal 

 @CP2022