Ceci est une ancienne révision du document !
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Table des matières
Numération
Il y a 10 sortes de gens, celles qui comprennent le binaire et les autres.
Fiche de cours à imprimer – Fiche d'exercices à imprimer
Du point de vue des mathématiques, les nombres $14$, $\frac{28}{2}$, $\sqrt{196}$, $1110_b$ sont tous identiques et il pourra raisonner indépendamment de la façon dont on choisit de les écrire. Toutefois, l'écriture choisie a son importance car certaines écritures sont plus commodes que d'autres. L'informaticien a le même genre de problème : Il doit décider comment il écrira les nombres dans la machine et les choix qu'il fera auront une importance sur les calculs qu'il peut faire.
La technologie d'aujourd'hui repose sur des quantités tout ou rien, ce que l'on traduire par 1 ou 0. Il est alors naturel que les nombres utilisent l'écriture binaire qui n'a besoin que des symboles 1 et 0.
Les seules bases importantes pour nous seront
- le décimal, base 10, base usuelle pour les humains,
- le binaire, base 2, base naturelle pour les machines
- l'hexadécimal, base 16, utile parce qu'elle résume l'écriture binaire et facilite ainsi le travail de l'humain.
Des symboles supplémentaires pour la base 16
On connaît les 10 symboles 0, … 9 de la base 10. Quand on utilise une base plus petite, on a intérêt à utiliser les mêmes symboles. Par exemple, en binaire, on utilise 0 et 1.
Mais quand la base est plus grande, que faire ? En base 16, il nous faut 16 symboles.
On choisit de compléter par les lettres A, B, C, D, E, F.
On a donc la correspondance A = 10, B = 11, C = 12, D = 13, E = 14 et F = 15
Notion de paquets
Exercice 1 et 1 bis de la fiche d'exercices.
Le principe de notre notation des nombres repose sur :
- l'utilisation de symbole élémentaires correspondant à une quantité connue,
- un principe de paquet
Exemple de la base 10
Par exemple, en décimal on utilise 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 et les paquets sont des paquets de 10.
Sur la figure ci-dessous, vous voyez à gauche les paquets possibles : une unité seule, un paquet de 10 (entouré en noir) et un paquet de 10 paquets de 10, c'est à dire un paquet de 100 (entouré en bleu).
Sur la droite, une quantité indéterminée d'items a été triée en paquets.
On constate que l'on a 2 paquets bleus, 1 noir et 3 unités. Dans ce cas on fait intuitivement le calcul et on déduit qu'il y a en tout 213 unités.
Exemple de la base 4
On reproduit l'expérience mais en envisageant maintenant des paquets de 4 : les paquets noirs contiennent 4 unités, les paquets bleus contiennent 4 paquets noirs et les paquets rouges contiennent 4 paquets bleus, comme on le voit sur la gauche.
Sur la droite le nouveau découpage montre que nous avons maintenant 3 rouges, 1 bleu, 1 noir et 1 unité.
Notez que la forme du paquet n'a pas d'importance. Le 3e paquet rouge n'est pas carré. L'important est qu'il contient 4x4x4 unités.
Numérotation de position
Exercice 2 de la fiche d'exercices.
Exemple de la base 10
Dans l'exemple précédent, on pourrait convenir d'utiliser toujours les mêmes couleurs de sorte que le premier nombre (base 10) serait 213 ou bien 132, la couleur permettant de savoir ce que signifie le 2, le 3 et le 1.
Mais c'est peu pratique. À la place on décide d'attribuer une signification à la position du chiffre dans le nombre :
- On écrit les paquets dans l'ordre, du plus grand au plus petit : 213
- La position donnant l'information nécessaire, on peut supprimer les couleurs : 213
- le chiffre à droite représente toujours les unités : 3 unités.
- Comme nous sommes en décimal, le poids d'une colonne est multiplié par 10 chaque fois qu'on avance d'une colonne à gauche.
Donc ici nous avons 3 unités (colonne de droite) plus 1×10 (2e colonne à partir de la droite) plus 2x10x10. Donc 213 = 2x10x10 + 1×10 + 3×1.
Cela à l'air un peu idiot comme cela. C'est que l'on est habitué à manipuler la base 10. Mettre ces mécanismes en évidence permet de mieux comprendre le fonctionnement des autres bases.
Exemple de la base 4
En base 4 nous avions le nombre 3111 que l'on notera sans couleur 3111. De droite à gauche :
- le 1 à droite est une simple unité : 1×1,
- le 1 suivant pèse 4 unités : 1×4,
- le 1 suivant pèse 4×4 unités : 1x4x4,
- le 3 final pèse 4x4x4 unités : 3x4x4x4
Le nombre est donc égal à 3x4x4x4 + 1x4x4 + 1×4 + 1×1 = 213.
Remarquez que nous ne savons faire ce calcul qu'en base 10. Le calcul 3x4x4x4 + 1x4x4 + 1×4 + 1×1 = 213 est donc un calcul fait un base 10 et le résultat correspond à ce que nous avions trouvé avec la base 10.
Indiquer la base
Le même nombre est noté 213 en base 10 et 3111 en base 4. Je ne peux pourtant pas écrire 213 = 3111. On convient alors d'indiquer la base en indice : $3111_4$.
On note la base en indice : $3111_4$ est en base 4, $213_{10}$ en décimal.
La base 10 étant notre base « normale », on convient qu'en l'absence d'indication, c'est la base 10 par défaut.
La base 2 et la base 16 ont une importance particulière et bénéficie d'une notation spéciale.
- Pour le binaire, on peut mettre un 2 en indice – exemple : $1101001_2$ – mais on préfère souvent les deux notations suivantes : $1101001_\text{b}$ ou
0b1101001. - Pour l'hexadécimal, on peut mettre un 16 en indice – exemple : $3A4_{16}$ – mais on préfère souvent les deux notations suivantes : $3\text{A}4_\text{x}$ ou
0x3A4.
Ces notations supplémentaires sont utilisables en Python :
>>> 0b11101 45 >>> 0x3e 52
Conversion vers décimal
binaire vers décimal
Exemple de conversion : 0b101001 = 41.
Exercice 3 de la fiche d'exercices.
hexadécimal vers décimal
Exemple de conversion 0x2B3 = 691
Exercice 4 de la fiche d'exercices.
