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.
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".
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.
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.
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), ...
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).
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.
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.
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.
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 ! ;-)