Numération

Un peu d'histoire...

Les premiers ordinateurs électroniques sont apparus dans les années 40. Le transistor restant encore à inventer, ils utilisaient des lampes pour effectuer les opérations demandées. Parmis les plus connus de ces précurseurs, L'ENIAC (1946) comportait 18000 lampes et pesait 30 tonnes pour une capacité de mémoire de 20 nombres de 10 chiffres et une puissance de calcul permettant d'effectuer 5000 opérations par seconde (contre plusieurs milliards sur les ordinateurs modernes).

Pour programmer ces "monstres", il fallait manipuler des milliers d'interrupteurs et de câbles et, de temps à autre, remplacer les lampes ayant "grillé" lorsque des insectes commettaient l'erreur (fatale) de vouloir se réchauffer contre elles (c'est là l'origine du terme bug).

ENIAC

Pour stocker un chiffre décimal (0 à 9), on utilisait alors 10 lampes, dont une seule à la fois était "allumée" :

Cette méthode de représentation était assez inefficace, puisque n'utilisant à un moment donné que 10% des ressources dédiées à la mémorisation d'un chiffre. Un autre mode de représentation, déjà utilisé par certains concurrents de l'ENIAC, s'est rapidement imposé : le binaire, autrement dit la représentation en base 2 :

Dans ce mode de représentation, 10 lampes permettent de représenter 1024 valeurs différentes, au lieu de 10 auparavant. Par contre, la base 2 n'est pas naturelle pour l'être humain, habitué à compter en base 10 (pour la raison simple que nous avons 10 doigts. Si nous n'en avions que 2, nous compterions peut-être en binaire et ce cours sur la numération n'aurait pas lieu d'être...).

Pour interpréter le résultat d'un calcul, il est donc nécessaire d'en obtenir une représentation en base 10. Inversement, pour fournir des données à un programme, nous préfèrons la plupart du temps les entrer sous forme décimale. Pour que ces données soient utilisables par un ordinateur travaillant en binaire, une étape de conversion est également nécessaire.

conversion

Rappel : bases de représentation des nombres

base = nombre de symboles utilisables pour représenter un chiffre d'un nombre

basenomsymbolesexemples
10décimal0 1 2 3 4 5 6 7 8 910295 13,48
2binaire0 1101101 101,11
8octal0 1 2 3 4 5 6 7724 45,13
16hexadécimal0 1 2 3 4 5 6 7 8 9 A B C D E F4AC9 B1,D6
notation : (nombre)base
exemples : (10295)10 (101101)2 (724)8 (4AC9)16

Binaire : base 2

comment représenter des informations pouvant prendre plus de deux valeurs différentes ?
-› en utilisant plusieurs bits :

Poids fort / poids faible

Soit C un nombre dont la représentation dans une base b comporte n chiffres notés Cn-1 , Cn-2 , ... , C2 , C1 , C0 :

C = (Cn-1Cn-2Cn-3...C2C1C0)b

en binaire, on parlera de bit de poids fort et de bit de poids faible