Chapitre 2 — Systèmes de numération
Niveau conseillé : Bac+1 / Bac+2 — Cycle préparatoire, BTS, BUT, Licence
| Finalité du chapitre Comprendre la représentation des nombres dans différentes bases, effectuer des conversions et des opérations binaires, puis interpréter correctement les nombres signés utilisés dans les systèmes numériques. |
Présentation du chapitre
Les circuits numériques ne manipulent pas directement les nombres sous leur écriture décimale habituelle. Ils représentent l’information à l’aide de deux états physiques, généralement notés 0 et 1. Le système binaire est donc le langage naturel des composants numériques, tandis que les systèmes octal et hexadécimal servent d’écritures compactes et lisibles pour l’être humain.
Ce chapitre introduit la notion de base de numération, la valeur positionnelle des chiffres, les méthodes de conversion entre les bases 2, 8, 10 et 16, ainsi que les opérations arithmétiques binaires. Il présente enfin les principales méthodes de représentation des nombres signés, en particulier le complément à 2, largement utilisé dans les processeurs et les microcontrôleurs.
Objectifs pédagogiques
À la fin du chapitre, l’étudiant sera capable de… | Indicateur de maîtrise |
|---|---|
| expliquer le principe d’un système de numération positionnel | décomposer correctement un nombre selon les puissances de sa base |
| identifier les chiffres autorisés dans une base donnée | détecter une écriture invalide et justifier l’erreur |
| convertir des nombres entiers et fractionnaires | appliquer la méthode adaptée sans confondre poids, divisions et multiplications |
| passer rapidement entre binaire, octal et hexadécimal | regrouper correctement les bits autour de la virgule |
| effectuer des opérations arithmétiques binaires | gérer les retenues, emprunts et limites de capacité |
| représenter des nombres signés sur n bits | coder et décoder en signe-valeur absolue, complément à 1 et complément à 2 |
| détecter un dépassement de capacité | distinguer retenue finale et débordement signé |
| Prérequis Calcul arithmétique élémentaire, puissances entières, fractions, notions de bit et d’état logique. |
2.1. Notion de base de numération
2.1.1. Pourquoi plusieurs systèmes de numération ?
Un système de numération est un ensemble de règles permettant de représenter des quantités à l’aide de symboles appelés chiffres. Le système décimal est adapté aux habitudes humaines, mais il n’est pas le plus simple à réaliser électroniquement. Un circuit numérique distingue plus facilement deux plages de tension que dix niveaux différents ; il utilise donc naturellement la base 2.
Les bases 8 et 16 sont particulièrement utiles parce qu’elles sont directement liées à la base 2. Un chiffre octal résume exactement trois bits, tandis qu’un chiffre hexadécimal résume quatre bits. Elles facilitent ainsi la lecture des longues suites binaires, des adresses mémoire, des masques, des instructions machine et des valeurs de configuration.
2.1.2. Définition d’une base
La base, notée b, indique le nombre de chiffres distincts disponibles dans le système. Les chiffres autorisés vont de 0 à b − 1. Une écriture n’est valide que si chacun de ses chiffres appartient à cet ensemble.
Base | Nom | Chiffres autorisés | Exemple valide | Exemple invalide |
|---|---|---|---|---|
2 | binaire | 0, 1 | 101101₂ | 10201₂ |
8 | octal | 0 à 7 | 735₈ | 789₈ |
10 | décimal | 0 à 9 | 4207₁₀ | 42A₁₀ |
16 | hexadécimal | 0 à 9, A à F | 3AF₁₆ | 19G₁₆ |
| Notation L’indice placé à droite du nombre précise sa base : 1011₂, 73₈, 59₁₀ ou 2F₁₆. Lorsque le contexte est ambigu, l’indice ne doit pas être omis. |
2.1.3. Principe de la valeur positionnelle
Dans un système positionnel, la valeur d’un chiffre dépend à la fois de sa valeur propre et de sa position. Les positions situées à gauche de la virgule utilisent les puissances positives ou nulles de la base. Celles situées à droite utilisent les puissances négatives.
N = … + a₂b² + a₁b¹ + a₀b⁰ + a₋₁b⁻¹ + a₋₂b⁻² + …
Chaque coefficient aᵢ est un chiffre compris entre 0 et b − 1. Le chiffre le plus à droite de la partie entière possède le poids b⁰ = 1. En se déplaçant d’une position vers la gauche, le poids est multiplié par b ; en se déplaçant vers la droite de la virgule, il est divisé par b.

Figure 1 — Poids associés aux positions d’un nombre écrit dans une base quelconque.
Exemple 1 — Décomposition d’un nombre décimal 472,35₁₀ = 4 × 10² + 7 × 10¹ + 2 × 10⁰ + 3 × 10⁻¹ + 5 × 10⁻² = 400 + 70 + 2 + 0,3 + 0,05 = 472,35. |
Exemple 2 — Décomposition d’un nombre binaire 10110,101₂ = 1 × 2⁴ + 0 × 2³ + 1 × 2² + 1 × 2¹ + 0 × 2⁰ + 1 × 2⁻¹ + 0 × 2⁻² + 1 × 2⁻³ = 16 + 4 + 2 + 0,5 + 0,125 = 22,625₁₀. |
2.1.4. Système décimal
Le système décimal, de base 10, utilise les chiffres 0 à 9. Il est le système usuel de calcul et de mesure. Chaque position représente une puissance de 10 : unités, dizaines, centaines, milliers pour la partie entière ; dixièmes, centièmes et millièmes pour la partie fractionnaire.
Dans un document technique, préciser la base 10 reste utile lorsqu’un même tableau contient des valeurs binaires, octales ou hexadécimales. Par exemple, 10₂ vaut 2₁₀, tandis que 10₁₆ vaut 16₁₀.
2.1.5. Système binaire
Le système binaire, de base 2, utilise uniquement les chiffres 0 et 1. Un chiffre binaire est appelé bit. La position d’un bit détermine son poids : …, 2⁴, 2³, 2², 2¹, 2⁰ pour la partie entière.
- Bit de poids faible, ou LSB : bit situé le plus à droite de la partie entière.
- Bit de poids fort, ou MSB : bit situé le plus à gauche du mot binaire.
- Quartet ou nibble : groupe de 4 bits.
- Octet ou byte : groupe de 8 bits.
- Mot : groupe de bits traité comme une unité par un système, par exemple 16, 32 ou 64 bits.
Nombre de bits n | Nombre de combinaisons 2ⁿ | Valeurs non signées possibles |
|---|---|---|
1 | 2 | 0 à 1 |
2 | 4 | 0 à 3 |
4 | 16 | 0 à 15 |
8 | 256 | 0 à 255 |
16 | 65 536 | 0 à 65 535 |
| Règle essentielle Avec n bits non signés, on peut représenter 2ⁿ valeurs distinctes, de 0 à 2ⁿ − 1. |
2.1.6. Système octal
Le système octal, de base 8, utilise les chiffres 0 à 7. Ses poids sont les puissances de 8. Historiquement fréquent dans les systèmes informatiques, il reste utile pour certaines notations, notamment les permissions de fichiers sous Unix et Linux.
Exemple 3 — Valeur décimale d’un nombre octal 725₈ = 7 × 8² + 2 × 8¹ + 5 × 8⁰ = 448 + 16 + 5 = 469₁₀. |
2.1.7. Système hexadécimal
Le système hexadécimal, de base 16, utilise seize chiffres. Les valeurs de 10 à 15 sont représentées par les lettres A, B, C, D, E et F. La casse n’a normalement pas d’importance : AF₁₆ et af₁₆ désignent la même valeur.
Décimal | Hexadécimal | Binaire sur 4 bits |
|---|---|---|
0 | 0 | 0000 |
1 | 1 | 0001 |
2 | 2 | 0010 |
3 | 3 | 0011 |
4 | 4 | 0100 |
5 | 5 | 0101 |
6 | 6 | 0110 |
7 | 7 | 0111 |
8 | 8 | 1000 |
9 | 9 | 1001 |
10 | A | 1010 |
11 | B | 1011 |
12 | C | 1100 |
13 | D | 1101 |
14 | E | 1110 |
15 | F | 1111 |
Exemple 4 — Valeur décimale d’un nombre hexadécimal 3AF₁₆ = 3 × 16² + 10 × 16¹ + 15 × 16⁰ = 768 + 160 + 15 = 943₁₀. |
2.2. Conversion entre bases
Une conversion change l’écriture d’un nombre sans modifier sa valeur. La méthode dépend de la base de départ, de la base d’arrivée et de la présence éventuelle d’une partie fractionnaire. Il est préférable d’identifier la situation avant de commencer les calculs.

Figure 2 — Méthodes privilégiées pour convertir entre les bases usuelles.
2.2.1. Conversion d’une base quelconque vers le décimal
La conversion vers le décimal utilise directement la valeur positionnelle. Chaque chiffre est multiplié par la puissance de la base correspondant à sa position, puis les produits sont additionnés.
- Écrire les poids des positions en commençant par b⁰ à droite de la partie entière.
- Multiplier chaque chiffre par son poids.
- Additionner les contributions, y compris celles de la partie fractionnaire.
Exemple 5 — Binaire vers décimal 110101₂ = 1 × 2⁵ + 1 × 2⁴ + 0 × 2³ + 1 × 2² + 0 × 2¹ + 1 × 2⁰ = 32 + 16 + 4 + 1 = 53₁₀. |
Exemple 6 — Hexadécimal fractionnaire vers décimal 2D,A₁₆ = 2 × 16¹ + 13 × 16⁰ + 10 × 16⁻¹ = 32 + 13 + 10/16 = 45,625₁₀. |
2.2.2. Conversion d’un entier décimal vers une autre base
Pour convertir un entier décimal vers la base b, on effectue des divisions entières successives par b. Chaque division produit un quotient et un reste. Les restes constituent les chiffres du résultat, mais ils doivent être lus du dernier au premier.
- Diviser le nombre décimal par la base d’arrivée.
- Noter le reste, compris entre 0 et b − 1.
- Diviser de nouveau le quotient obtenu par la base.
- Continuer jusqu’à obtenir un quotient nul.
- Lire les restes de bas en haut.
Exemple 7 — Conversion de 45₁₀ vers le binaire 45 ÷ 2 = 22, reste 1 22 ÷ 2 = 11, reste 0 11 ÷ 2 = 5, reste 1 5 ÷ 2 = 2, reste 1 2 ÷ 2 = 1, reste 0 1 ÷ 2 = 0, reste 1 Lecture de bas en haut : 45₁₀ = 101101₂. |
Exemple 8 — Conversion de 943₁₀ vers l’hexadécimal 943 ÷ 16 = 58, reste 15 = F 58 ÷ 16 = 3, reste 10 = A 3 ÷ 16 = 0, reste 3 Donc 943₁₀ = 3AF₁₆. |
| Vérification conseillée Après une conversion par divisions successives, reconvertir rapidement le résultat vers le décimal permet de repérer une erreur d’ordre ou de reste. |
2.2.3. Conversion d’une fraction décimale vers une autre base
La partie fractionnaire se convertit par multiplications successives par la base d’arrivée. À chaque étape, la partie entière obtenue devient le chiffre suivant après la virgule. Les chiffres sont lus dans l’ordre de calcul.
- Multiplier la fraction par la base d’arrivée.
- Noter la partie entière du résultat.
- Reprendre uniquement la nouvelle partie fractionnaire.
- Continuer jusqu’à obtenir une fraction nulle ou la précision désirée.
Exemple 9 — Conversion de 0,625₁₀ vers le binaire 0,625 × 2 = 1,250 → chiffre 1, fraction restante 0,250 0,250 × 2 = 0,500 → chiffre 0, fraction restante 0,500 0,500 × 2 = 1,000 → chiffre 1, fraction nulle Donc 0,625₁₀ = 0,101₂. |
Exemple 10 — Fraction binaire non finie 0,1₁₀ × 2 = 0,2 → 0 0,2 × 2 = 0,4 → 0 0,4 × 2 = 0,8 → 0 0,8 × 2 = 1,6 → 1, puis le processus continue. Ainsi 0,1₁₀ n’a pas d’écriture binaire finie. Une machine doit en conserver une approximation. |
| Précision numérique Certaines fractions exactes en base 10 deviennent périodiques en base 2. Cette propriété explique une partie des erreurs d’arrondi observées dans les calculs en virgule flottante. |
2.2.4. Conversion d’un nombre décimal complet
Pour un nombre comportant une partie entière et une partie fractionnaire, les deux parties sont converties séparément. La partie entière utilise les divisions successives ; la partie fractionnaire utilise les multiplications successives. Les deux résultats sont ensuite réunis autour de la virgule.
Exemple 11 — Conversion de 26,375₁₀ vers le binaire Partie entière : 26₁₀ = 11010₂. Partie fractionnaire : 0,375₁₀ = 0,011₂. Résultat : 26,375₁₀ = 11010,011₂. |
2.2.5. Conversion directe entre binaire et octal
Comme 8 = 2³, chaque chiffre octal correspond exactement à trois bits. La conversion ne nécessite aucun calcul arithmétique : il suffit de regrouper les bits par paquets de trois en partant de la virgule vers l’extérieur.
- Pour la partie entière, former les groupes de droite vers la gauche.
- Pour la partie fractionnaire, former les groupes de gauche vers la droite.
- Compléter éventuellement le groupe extrême avec des zéros sans modifier la valeur.
Octal | Binaire | Octal | Binaire |
|---|---|---|---|
0 | 000 | 4 | 100 |
1 | 001 | 5 | 101 |
2 | 010 | 6 | 110 |
3 | 011 | 7 | 111 |
Exemple 12 — Binaire vers octal 11010111,101₂ → 011 | 010 | 111 , 101 011₂ = 3₈ ; 010₂ = 2₈ ; 111₂ = 7₈ ; 101₂ = 5₈ Donc 11010111,101₂ = 327,5₈. |
2.2.6. Conversion directe entre binaire et hexadécimal
Comme 16 = 2⁴, un chiffre hexadécimal représente exactement quatre bits. La méthode est identique à celle de l’octal, mais les groupes contiennent quatre bits.
Exemple 13 — Binaire vers hexadécimal 110101101011,101₂ → 1101 | 0110 | 1011 , 1010 1101₂ = D₁₆ ; 0110₂ = 6₁₆ ; 1011₂ = B₁₆ ; 1010₂ = A₁₆ Donc 110101101011,101₂ = D6B,A₁₆. |
Exemple 14 — Hexadécimal vers binaire 5E3₁₆ = 5 | E | 3 5 → 0101 ; E → 1110 ; 3 → 0011 Donc 5E3₁₆ = 010111100011₂. Le zéro initial peut être supprimé : 10111100011₂. |

Figure 3 — Regrouper les bits à partir de la virgule pour obtenir l’écriture octale ou hexadécimale.
2.2.7. Conversion entre octal et hexadécimal
Il n’existe pas de regroupement direct simple entre octal et hexadécimal. La méthode la plus sûre consiste à utiliser le binaire comme base intermédiaire : chaque chiffre octal est remplacé par 3 bits, puis la suite obtenue est regroupée par 4 bits pour produire l’hexadécimal, ou inversement.
Exemple 15 — Octal vers hexadécimal 572₈ → 101 | 111 | 010 = 101111010₂ Regroupement par 4 : 0001 | 0111 | 1010 0001 = 1 ; 0111 = 7 ; 1010 = A Donc 572₈ = 17A₁₆. |
2.2.8. Tableau de choix de méthode
Conversion demandée | Méthode recommandée | Point de vigilance |
|---|---|---|
| base b → décimal | somme des chiffres multipliés par leurs poids | utiliser les exposants négatifs après la virgule |
| décimal entier → base b | divisions successives par b | lire les restes du dernier au premier |
| fraction décimale → base b | multiplications successives par b | lire les parties entières dans l’ordre |
| binaire ↔ octal | groupes de 3 bits | compléter avec des zéros aux extrémités seulement |
| binaire ↔ hexadécimal | groupes de 4 bits | connaître la correspondance A à F |
| octal ↔ hexadécimal | passage intermédiaire par le binaire | reformer les groupes autour de la virgule |
2.3. Opérations arithmétiques binaires
Les opérations binaires suivent les mêmes principes que les opérations décimales, mais tous les calculs sont réalisés avec les deux chiffres 0 et 1. Une retenue ou un emprunt apparaît dès que le résultat dépasse ce qu’un seul bit peut représenter.
2.3.1. Addition binaire
Opération | Somme écrite | Bit de résultat | Retenue |
|---|---|---|---|
0 + 0 | 0 | 0 | 0 |
0 + 1 ou 1 + 0 | 1 | 1 | 0 |
1 + 1 | 10₂ | 0 | 1 |
1 + 1 + 1 | 11₂ | 1 | 1 |
L’addition s’effectue colonne par colonne de droite à gauche. La retenue produite dans une colonne est ajoutée à la colonne suivante.
Exemple 16 — Addition de deux nombres binaires 101101₂ (45₁₀) + 011011₂ (27₁₀) ────────── 1001000₂ (72₁₀) La somme nécessite 7 bits alors que les opérandes étaient écrits sur 6 bits. |
2.3.2. Soustraction binaire
Opération | Résultat | Emprunt |
|---|---|---|
0 − 0 | 0 | 0 |
1 − 0 | 1 | 0 |
1 − 1 | 0 | 0 |
0 − 1 | 1 | 1 emprunté à la colonne suivante |
Lorsqu’on doit calculer 0 − 1, on emprunte une unité à la colonne de poids supérieur. En base 2, cette unité vaut 10₂ dans la colonne courante ; on obtient donc 10₂ − 1₂ = 1₂.
Exemple 17 — Soustraction binaire 10110₂ (22₁₀) − 01101₂ (13₁₀) ───────── 01001₂ (9₁₀). |
| Alternative matérielle Dans les processeurs, la soustraction est généralement transformée en addition à l’aide du complément à 2. Cela permet d’utiliser le même circuit additionneur pour les deux opérations. |
2.3.3. Multiplication binaire
La multiplication binaire est simple parce que les produits élémentaires sont 0 × 0 = 0, 0 × 1 = 0 et 1 × 1 = 1. Chaque ligne partielle est décalée d’une position vers la gauche, puis les lignes sont additionnées.
Exemple 18 — Multiplication binaire 1011₂ (11₁₀) × 110₂ (6₁₀) ────────── 0000 1011 + 1011 ────────── 1000010₂ (66₁₀). |
Un décalage d’un bit vers la gauche multiplie un nombre non signé par 2, à condition qu’aucun bit significatif ne soit perdu. Un décalage de k positions correspond à une multiplication par 2ᵏ.
2.3.4. Division binaire et décalages
La division binaire peut être réalisée par une méthode analogue à la division posée décimale. Dans les cas où le diviseur est une puissance de 2, un simple décalage vers la droite suffit pour un nombre non signé.
Opération | Effet idéal sur un entier non signé | Exemple |
|---|---|---|
| décalage à gauche de 1 bit | multiplication par 2 | 001101₂ → 011010₂ : 13 → 26 |
| décalage à gauche de k bits | multiplication par 2ᵏ | 000101₂ << 3 = 101000₂ : 5 → 40 |
| décalage à droite de 1 bit | division entière par 2 | 011011₂ → 001101₂ : 27 → 13 |
| décalage à droite de k bits | division entière par 2ᵏ | 101100₂ >> 2 = 001011₂ : 44 → 11 |
| Attention Un décalage ne garantit le résultat arithmétique attendu que si la largeur du mot, le type signé ou non signé et les bits perdus sont correctement pris en compte. |
2.3.5. Capacité limitée et dépassement non signé
Un circuit manipule des mots de longueur fixe. Sur n bits non signés, la valeur maximale est 2ⁿ − 1. Si une opération produit une valeur supérieure, le résultat complet exige un bit supplémentaire. Lorsque ce bit n’est pas conservé, le résultat est calculé modulo 2ⁿ.
Exemple 19 — Dépassement sur 4 bits non signés 1110₂ + 0101₂ = 10011₂, soit 14 + 5 = 19. Sur 4 bits seulement, le bit de retenue gauche est perdu et il reste 0011₂ = 3. La retenue finale signale que la capacité non signée a été dépassée. |
2.4. Représentation des nombres signés
Pour représenter des nombres positifs et négatifs, il faut définir une convention d’interprétation des bits. Le même motif binaire peut donc représenter des valeurs différentes selon que le mot est considéré comme non signé, en signe-valeur absolue, en complément à 1 ou en complément à 2.
2.4.1. Bit de signe et principe général
Dans les représentations signées usuelles, le bit de poids fort joue un rôle particulier. Une valeur 0 indique généralement un nombre positif ou nul, tandis qu’une valeur 1 indique un nombre négatif. Les autres bits et la méthode de décodage dépendent de la convention utilisée.
| Interprétation obligatoire Une suite de bits n’a pas de signe par elle-même. Le type de donnée et la largeur du mot doivent être connus avant de lui attribuer une valeur numérique. |
2.4.2. Représentation signe-valeur absolue
Le bit de poids fort indique le signe et les n − 1 autres bits représentent la valeur absolue. Cette méthode est intuitive, mais elle possède deux écritures du zéro et complique les opérations arithmétiques.
Sur 8 bits | Codage | Interprétation |
|---|---|---|
+37 | 00100101 | signe 0, valeur absolue 37 |
-37 | 10100101 | signe 1, valeur absolue 37 |
+0 | 00000000 | zéro positif |
-0 | 10000000 | zéro négatif |
Plage sur n bits : −(2ⁿ⁻¹ − 1) à +(2ⁿ⁻¹ − 1)
2.4.3. Complément à 1
En complément à 1, un nombre positif est codé comme en binaire naturel avec un bit de signe nul. Pour obtenir l’opposé, tous les bits sont inversés : chaque 0 devient 1 et chaque 1 devient 0.
Exemple 20 — Codage de −37 en complément à 1 sur 8 bits +37 = 00100101₂ Inversion de tous les bits : 11011010₂ Donc −37 est représenté par 11011010₂ en complément à 1. |
Comme la représentation signe-valeur absolue, le complément à 1 possède deux zéros : 00000000₂ pour +0 et 11111111₂ pour −0. Cette propriété limite son usage dans les architectures modernes.
Plage sur n bits : −(2ⁿ⁻¹ − 1) à +(2ⁿ⁻¹ − 1)
2.4.4. Complément à 2
Le complément à 2 est la représentation signée la plus utilisée. Un nombre positif est codé comme en binaire naturel. Pour obtenir l’opposé d’un nombre, on inverse tous ses bits puis on ajoute 1 au résultat.
- Écrire la valeur positive sur le nombre de bits imposé.
- Inverser tous les bits.
- Ajouter 1 au mot inversé, en ignorant une éventuelle retenue au-delà de la largeur.
Exemple 21 — Codage de −37 en complément à 2 sur 8 bits +37 = 00100101₂ Complément à 1 : 11011010₂ Ajout de 1 : 11011011₂ Donc −37 est représenté par 11011011₂. |
Plage sur n bits : −2ⁿ⁻¹ à +(2ⁿ⁻¹ − 1)
Largeur | Minimum signé | Maximum signé | Plage non signée |
|---|---|---|---|
4 bits | −8 | +7 | 0 à 15 |
8 bits | −128 | +127 | 0 à 255 |
16 bits | −32 768 | +32 767 | 0 à 65 535 |
32 bits | −2 147 483 648 | +2 147 483 647 | 0 à 4 294 967 295 |
| Pourquoi une valeur négative supplémentaire ? En complément à 2, il n’existe qu’un seul zéro. Le motif 100…0 est donc disponible pour représenter −2ⁿ⁻¹, alors que son opposé positif +2ⁿ⁻¹ n’est pas représentable sur n bits. |
2.4.5. Décodage d’un mot en complément à 2
Si le bit de signe vaut 0, le mot est positif et se convertit comme un nombre binaire ordinaire. Si le bit de signe vaut 1, deux méthodes équivalentes sont possibles.
Méthode | Procédure |
|---|---|
| valeur absolue | inverser les bits, ajouter 1, convertir en décimal, puis placer le signe moins |
| soustraction de 2ⁿ | convertir le mot comme un entier non signé U, puis calculer U − 2ⁿ |
Exemple 22 — Décodage de 11100110₂ sur 8 bits Méthode 1 : inversion 00011001, ajout de 1 → 00011010₂ = 26 ; la valeur est donc −26. Méthode 2 : 11100110₂ vaut 230 en non signé ; 230 − 256 = −26. |
2.4.6. Addition en complément à 2
Les mots en complément à 2 s’additionnent comme des nombres binaires ordinaires. La retenue finale au-delà de la largeur est ignorée. La validité du résultat dépend toutefois de l’absence de débordement signé.
Exemple 23 — Addition d’un positif et d’un négatif +25 = 00011001₂ −12 = 11110100₂ Somme : 1 00001101₂. La retenue finale est ignorée. 00001101₂ = +13, ce qui correspond à 25 − 12. |
Exemple 24 — Addition de deux nombres négatifs −50 = 11001110₂ −30 = 11100010₂ Somme sur 8 bits : 10110000₂. Le décodage donne −80, qui appartient à la plage [−128 ; +127]. |
2.4.7. Soustraction en complément à 2
La soustraction A − B est remplacée par l’addition A + (−B). On forme donc le complément à 2 de B, puis on l’ajoute à A. Cette propriété simplifie fortement la réalisation matérielle des unités arithmétiques.
Exemple 25 — Calcul de 37 − 52 sur 8 bits 37 = 00100101₂ ; 52 = 00110100₂. Opposé de 52 : inversion 11001011, puis +1 → 11001100₂. 00100101 + 11001100 = 11110001₂. Décodage : inversion 00001110, +1 → 00001111₂ = 15 ; résultat −15. |
2.4.8. Débordement signé
Le débordement signé, ou overflow, se produit lorsque le résultat mathématique sort de la plage représentable. Il ne doit pas être confondu avec la retenue finale. En complément à 2, un débordement apparaît lors de l’addition de deux nombres de même signe lorsque le résultat obtenu possède le signe opposé.
Signes des opérandes | Signe du résultat | Conclusion |
|---|---|---|
positif + positif | positif | pas de débordement |
positif + positif | négatif | débordement |
négatif + négatif | négatif | pas de débordement |
négatif + négatif | positif | débordement |
signes différents | quelconque | pas de débordement d’addition |
Exemple 26 — Débordement signé sur 8 bits +70 = 01000110₂ +80 = 01010000₂ Somme binaire : 10010110₂. Deux nombres positifs produisent un motif de signe négatif. La valeur mathématique +150 dépasse +127 : il y a débordement. |
| Distinction importante La retenue finale détecte surtout un dépassement non signé. Le débordement signé dépend des signes des opérandes et du résultat. Les deux indicateurs peuvent être différents. |
2.4.9. Comparaison des représentations signées
Critère | Signe-valeur absolue | Complément à 1 | Complément à 2 |
|---|---|---|---|
| obtention du négatif | changer le bit de signe | inverser tous les bits | inverser les bits puis ajouter 1 |
| nombre de zéros | deux | deux | un seul |
| plage sur n bits | −(2ⁿ⁻¹−1) à +(2ⁿ⁻¹−1) | −(2ⁿ⁻¹−1) à +(2ⁿ⁻¹−1) | −2ⁿ⁻¹ à +(2ⁿ⁻¹−1) |
| addition matérielle | gestion particulière des signes | correction de retenue circulaire | addition binaire directe |
| usage actuel | limité | rare | très fréquent |
2.5. Méthode générale de résolution
La plupart des erreurs viennent d’une base non identifiée, d’une largeur de mot oubliée ou d’une confusion entre valeur signée et non signée. La démarche suivante permet de sécuriser les calculs.
- Identifier la base de chaque donnée et vérifier la validité des chiffres.
- Préciser la largeur en bits lorsqu’elle influence la plage ou le résultat.
- Déterminer si les nombres sont signés ou non signés.
- Choisir la méthode de conversion ou d’opération adaptée.
- Conserver les zéros utiles pendant les regroupements et les calculs.
- Vérifier le résultat dans une seconde base, généralement la base 10.
- Contrôler la plage représentable et rechercher un éventuel débordement.
2.6. Activité pratique proposée
Calculatrice multibase et validation sur simulateur
Cette activité peut être réalisée avec une calculatrice scientifique, un simulateur logique ou un court programme. L’objectif est de comparer la méthode manuelle avec les résultats fournis par l’outil, sans remplacer le raisonnement par la calculatrice.
Étape | Travail demandé |
|---|---|
| 1. Préparation | choisir cinq nombres décimaux, dont au moins un nombre supérieur à 255 et deux nombres fractionnaires |
| 2. Conversion manuelle | convertir les parties entières en bases 2, 8 et 16 ; limiter les fractions binaires à 8 chiffres si nécessaire |
| 3. Vérification | utiliser l’outil pour vérifier chaque résultat et expliquer les écarts d’arrondi |
| 4. Arithmétique | effectuer deux additions et une soustraction sur 8 bits, en non signé puis en signé |
| 5. Débordement | construire un exemple produisant une retenue non signée et un autre produisant un overflow signé |
| 6. Compte rendu | présenter les méthodes, résultats, vérifications et conclusions dans un tableau synthétique |
| Bonne pratique L’outil de calcul doit servir à vérifier une démarche comprise. Une réponse correcte sans méthode ne permet pas de détecter une erreur d’interprétation du type ou de la largeur. |
Synthèse du chapitre
- Une base b utilise b chiffres, de 0 à b − 1.
- La valeur d’un chiffre dépend de sa position et du poids bⁱ associé.
- Le binaire utilise deux chiffres ; l’octal et l’hexadécimal condensent respectivement des groupes de 3 et 4 bits.
- La conversion vers le décimal utilise la somme pondérée des chiffres.
- Un entier décimal se convertit par divisions successives ; une fraction décimale par multiplications successives.
- Les opérations binaires suivent les mêmes principes que les opérations décimales, avec retenues et emprunts en base 2.
- Sur n bits non signés, la plage est 0 à 2ⁿ − 1.
- Le complément à 2 représente les entiers signés de −2ⁿ⁻¹ à +(2ⁿ⁻¹ − 1).
- En complément à 2, l’opposé s’obtient en inversant tous les bits puis en ajoutant 1.
- Le débordement signé apparaît quand deux opérandes de même signe produisent un résultat de signe opposé.
Glossaire essentiel
Terme | Définition |
|---|---|
| Base | nombre de chiffres distincts utilisés par un système de numération. |
| Bit | chiffre binaire prenant la valeur 0 ou 1. |
| MSB | bit de poids fort, situé à gauche du mot. |
| LSB | bit de poids faible, situé à droite de la partie entière. |
| Poids | puissance de la base associée à une position. |
| Mot binaire | ensemble de bits traité comme une unité. |
| Retenue | bit reporté vers la colonne de poids supérieur lors d’une addition. |
| Emprunt | unité prise à une colonne supérieure lors d’une soustraction. |
| Complément à 1 | codage négatif obtenu par inversion de tous les bits. |
| Complément à 2 | codage négatif obtenu par inversion des bits puis ajout de 1. |
| Dépassement non signé | résultat supérieur à 2ⁿ − 1 pour un mot de n bits. |
| Overflow signé | résultat mathématique extérieur à la plage signée représentable. |
| Modulo 2ⁿ | résultat obtenu lorsqu’on ne conserve que les n bits de poids faible. |
Exercices d’application
Exercice 1 — Bases et validité des écritures
1. Indiquer si chacune des écritures suivantes est valide : 101102₂ ; 753₈ ; 19A₁₆ ; 128₈ ; 207₁₀ ; F2G₁₆.
2. Donner la valeur des poids des six positions d’un entier binaire sur 6 bits.
3. Combien de valeurs distinctes peut-on coder sur 5, 10 et 12 bits ?
Exercice 2 — Conversion vers le décimal
Convertir en décimal : 1011011₂ ; 1101,011₂ ; 735₈ ; 24,6₈ ; 2AF₁₆ ; B3,C₁₆.
Exercice 3 — Conversion depuis le décimal
1. Convertir 156₁₀ en binaire, octal et hexadécimal.
2. Convertir 1000₁₀ en binaire et en hexadécimal.
3. Convertir 13,625₁₀ en binaire.
4. Donner une approximation binaire de 0,2₁₀ sur 8 chiffres après la virgule.
Exercice 4 — Conversions rapides
1. Convertir 101110011101₂ en octal et en hexadécimal.
2. Convertir 7A5₁₆ en binaire puis en octal.
3. Convertir 643₈ en binaire puis en hexadécimal.
Exercice 5 — Arithmétique binaire
Effectuer les opérations et vérifier en décimal :
a) 101101₂ + 11101₂ b) 110010₂ − 10111₂
c) 1011₂ × 101₂ d) 111100₂ ÷ 100₂
e) Sur 8 bits non signés : 11100110₂ + 00111101₂. Indiquer la retenue et le résultat conservé.
Exercice 6 — Nombres signés sur 8 bits
1. Coder +45 et −45 en signe-valeur absolue, complément à 1 et complément à 2.
2. Décoder les mots suivants en complément à 2 : 01110110₂ ; 11110110₂ ; 10000000₂ ; 11111111₂.
3. Donner la plage des nombres signés représentables sur 6 bits en complément à 2.
Exercice 7 — Addition signée et overflow
Effectuer sur 8 bits en complément à 2 et indiquer s’il y a overflow :
a) 50 + 60 b) 90 + 50 c) −70 + 25 d) −90 − 50 e) −80 + (−20)
Exercice 8 — Problème de synthèse
Un capteur fournit un entier non signé sur 10 bits. La valeur brute vaut 2D7₁₆. Déterminer sa valeur décimale, vérifier qu’elle appartient à la plage du capteur et écrire le mot sur exactement 10 bits. Le système doit ensuite calculer la correction valeur − 600 en complément à 2 sur 12 bits. Donner le résultat binaire signé.
Auto-évaluation
Affirmation | Vrai | Faux |
|---|---|---|
| En base 8, le chiffre 8 est autorisé. | ☐ | ☐ |
| Chaque chiffre hexadécimal correspond à quatre bits. | ☐ | ☐ |
| Les restes des divisions successives sont lus du premier au dernier. | ☐ | ☐ |
| Une fraction décimale peut nécessiter une infinité de bits. | ☐ | ☐ |
| Sur 8 bits non signés, la valeur maximale est 255. | ☐ | ☐ |
| Le complément à 2 de 00000101₂ sur 8 bits est 11111011₂. | ☐ | ☐ |
| En complément à 2 sur 8 bits, −128 est représentable. | ☐ | ☐ |
| Une retenue finale signifie toujours un overflow signé. | ☐ | ☐ |
Réponses : 1 Faux ; 2 Vrai ; 3 Faux ; 4 Vrai ; 5 Vrai ; 6 Vrai ; 7 Vrai ; 8 Faux.
Corrigé synthétique
Exercice 1
1. Invalides : 101102₂ contient 2 ; 128₈ contient 8 ; F2G₁₆ contient G. Valides : 753₈, 19A₁₆ et 207₁₀.
2. Poids sur 6 bits : 2⁵, 2⁴, 2³, 2², 2¹, 2⁰, soit 32, 16, 8, 4, 2, 1.
3. 5 bits : 32 valeurs ; 10 bits : 1024 valeurs ; 12 bits : 4096 valeurs.
Exercice 2
1011011₂ = 91₁₀ ; 1101,011₂ = 13,375₁₀ ; 735₈ = 477₁₀ ; 24,6₈ = 20,75₁₀ ; 2AF₁₆ = 687₁₀ ; B3,C₁₆ = 179,75₁₀.
Exercice 3
1. 156₁₀ = 10011100₂ = 234₈ = 9C₁₆.
2. 1000₁₀ = 1111101000₂ = 3E8₁₆.
3. 13,625₁₀ = 1101,101₂.
4. 0,2₁₀ ≈ 0,00110011₂ sur 8 chiffres après la virgule ; la représentation exacte est périodique.
Exercice 4
1. 101110011101₂ = 5635₈ = B9D₁₆.
2. 7A5₁₆ = 011110100101₂ = 3645₈.
3. 643₈ = 110100011₂ = 1A3₁₆.
Exercice 5
a) 101101₂ + 11101₂ = 1001010₂, soit 45 + 29 = 74.
b) 110010₂ − 10111₂ = 011011₂, soit 50 − 23 = 27.
c) 1011₂ × 101₂ = 110111₂, soit 11 × 5 = 55.
d) 111100₂ ÷ 100₂ = 1111₂, soit 60 ÷ 4 = 15.
e) 11100110₂ + 00111101₂ = 1 00100011₂. Retenue 1 ; résultat conservé sur 8 bits : 00100011₂ = 35. La somme mathématique non signée vaut 291.
Exercice 6
1. +45 = 00101101 dans les trois représentations. −45 : signe-valeur absolue 10101101 ; complément à 1 11010010 ; complément à 2 11010011.
2. 01110110₂ = +118 ; 11110110₂ = −10 ; 10000000₂ = −128 ; 11111111₂ = −1.
3. Sur 6 bits en complément à 2 : −32 à +31.
Exercice 7
a) 50 + 60 = 110, représentable : pas d’overflow.
b) 90 + 50 = 140, supérieur à 127 : overflow.
c) −70 + 25 = −45, représentable : pas d’overflow.
d) −90 − 50 = −140, inférieur à −128 : overflow.
e) −80 + (−20) = −100, représentable : pas d’overflow.
Exercice 8
2D7₁₆ = 727₁₀. La plage d’un entier non signé sur 10 bits est 0 à 1023, donc la valeur est valide. Sur exactement 10 bits : 1011010111₂.
Correction : 727 − 600 = 127. Sur 12 bits en complément à 2, le résultat positif vaut 000001111111₂.