Ce que vous allez apprendre
- Distinguer une valeur de son écriture dans une base.
- Convertir un entier non négatif par poids de position ou divisions successives.
- Relier un chiffre octal à trois bits et un chiffre hexadécimal à quatre bits.
Prérequis. Connaître les entiers, les puissances, le quotient entier et le reste.
26 et 1A peuvent-ils désigner le même nombre ?
On peut compter vingt-six objets sans choisir leur écriture. Le nombre s’écrit 26 en décimal, 11010 en binaire, 32 en octal et 1A en hexadécimal. Une base de numération organise l’écriture ; elle ne change pas la quantité.
Comprendre la numération de position
Dans une base entière b ≥ 2, chaque chiffre a une valeur de 0 à b - 1. En partant de la droite, les
positions ont pour poids b⁰ = 1, b¹ = b, b², puis les puissances suivantes.
La valeur est la somme des chiffres multipliés par leurs poids. Nous étudions ici les entiers non négatifs.
| Base | Nom | Chiffres | Écriture de vingt-six |
|---|---|---|---|
| 2 | Binaire | 0, 1 | 11010₂ |
| 8 | Octale | 0 à 7 | 32₈ |
| 10 | Décimale | 0 à 9 | 26₁₀ |
| 16 | Hexadécimale | 0 à 9, A à F | 1A₁₆ |
En hexadécimal, A vaut 10, B vaut 11, C vaut 12, D vaut 13, E vaut 14 et F vaut 15. Les indices ₂, ₈, ₁₀, ₁₆
indiquent la base dans le texte mathématique. 26₁₀ = 2 × 10 + 6 ; 1A₁₆ = 1 × 16 + 10 ;
11010₂ = 16 + 8 + 2
; 32₈ = 3 × 8 + 2. Le chiffre 8 n’est pas autorisé en base 8.
Convertir par divisions successives
Pour passer de 26 à la base 2, divisez par 2 et conservez les restes. Recommencez avec le quotient tant qu’il est
non nul. Le premier reste donne le chiffre de droite, car n = 2q + r. Diviser q décale le
raisonnement vers la position suivante.
| Nombre | Quotient | Reste |
|---|---|---|
| 26 | 13 | 0 |
| 13 | 6 | 1 |
| 6 | 3 | 0 |
| 3 | 1 | 1 |
| 1 | 0 | 1 |
Lisez les restes du bas vers le haut : 11010. La même méthode avec le diviseur 8 donne les restes 2 puis 3, donc 32₈ ; avec 16, les restes 10 (A) puis 1, donc 1A₁₆. Pour zéro, l’écriture est simplement 0.
Relier binaire, octal et hexadécimal
Un bit est un chiffre binaire : 0 ou 1. Comme 8 = 2³, un chiffre octal correspond à
trois bits ; comme 16 = 2⁴, un chiffre hexadécimal correspond à quatre bits. Groupez depuis la droite
et complétez à gauche avec des zéros : 011 010₂ = 32₈ et 0001 1010₂ = 1A₁₆. Ces zéros à
gauche ne changent pas la valeur.
Comparer écriture et valeur
En Python, int("1A", 16) convertit le texte hexadécimal en entier. bin,
oct
et hex produisent des textes préfixés par 0b, 0o et
0x. Les littéraux 0b11010, 0o32 et 0x1A ont tous la valeur
entière 26. MATLAB utilise ici base2dec pour lire et dec2base pour produire le texte
dans la base choisie ; les apostrophes délimitent le texte.
// example.pseudo
// positional_value
value <- 1 * 16 + 10
quotient <- floor_divide(value, 2)
remainder <- value MOD 2
PRINT value, quotient, remainder # positional_value.py
value = int("1A", 16)
quotient = value // 2
remainder = value % 2
print(value, quotient, remainder)
print(bin(value), oct(value), hex(value)) % positional_value.m
value = base2dec('1A', 16);
quotient = floor(value / 2);
remainder = mod(value, 2);
disp([value, quotient, remainder]);
disp(dec2base(value, 2));
disp(dec2base(value, 8));
disp(dec2base(value, 16)); Python affiche 26, 13, 0 puis 0b11010 0o32 0x1a. MATLAB affiche les mêmes nombres, puis 11010, 32 et
1A sans préfixe. La casse des lettres ne change pas leur valeur.
Prévoir et vérifier une conversion
Avant de relancer, prévoyez les écritures de 15, 16 et 0 : F, 10 et 0 en base 16 ; 1111, 10000 et 0 en base 2.
Convertissez puis reconstituez chaque valeur avec ses poids. 10₂, 10₈ et
10₁₆
valent respectivement 2, 8 et 16 : annoncer la base évite une ambiguïté.
Changer de base sans changer de quantité
Que vaut 101101₂ ?
32 + 8 + 4 + 1 = 45 en décimal. En regroupant les bits : 101 101 donne 55₈ ; 0010 1101 donne 2D₁₆.
Peut-on écrire 19 en base 8 ?
Le texte 19 est invalide dans cette base car 9 n’est pas un chiffre octal. La quantité dix-neuf s’écrit 23₈ : 2 × 8 + 3 = 19.
À retenir - fiche mémo
- Base
- En base b, les chiffres vont de 0 à b - 1 et les positions pèsent 1, b, b², etc.
- Conversion
- Divisez par la base et lisez les restes en sens inverse ; zéro s’écrit 0.
- Regroupement
- Un chiffre octal correspond à trois bits ; un chiffre hexadécimal à quatre bits.
// example.pseudo
// positional_value
value <- 1 * 16 + 10
PRINT value Point de vigilance. Une écriture comme 10 exige d’annoncer sa base ; la valeur ne change pas lors d’une conversion.
Consulter la cheatsheet : Fondations · Télécharger la fiche du thème en PDF