Leçon 2 sur 18

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 positionneldécomposer correctement un nombre selon les puissances de sa base
identifier les chiffres autorisés dans une base donnéedétecter une écriture invalide et justifier l’erreur
convertir des nombres entiers et fractionnairesappliquer la méthode adaptée sans confondre poids, divisions et multiplications
passer rapidement entre binaire, octal et hexadécimalregrouper correctement les bits autour de la virgule
effectuer des opérations arithmétiques binairesgérer les retenues, emprunts et limites de capacité
représenter des nombres signés sur n bitscoder 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.

  1. Écrire les poids des positions en commençant par b⁰ à droite de la partie entière.
  2. Multiplier chaque chiffre par son poids.
  3. 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.

  1. Diviser le nombre décimal par la base d’arrivée.
  2. Noter le reste, compris entre 0 et b − 1.
  3. Diviser de nouveau le quotient obtenu par la base.
  4. Continuer jusqu’à obtenir un quotient nul.
  5. 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.

  1. Multiplier la fraction par la base d’arrivée.
  2. Noter la partie entière du résultat.
  3. Reprendre uniquement la nouvelle partie fractionnaire.
  4. 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écimalsomme des chiffres multipliés par leurs poidsutiliser les exposants négatifs après la virgule
décimal entier → base bdivisions successives par blire les restes du dernier au premier
fraction décimale → base bmultiplications successives par blire les parties entières dans l’ordre
binaire ↔ octalgroupes de 3 bitscompléter avec des zéros aux extrémités seulement
binaire ↔ hexadécimalgroupes de 4 bitsconnaître la correspondance A à F
octal ↔ hexadécimalpassage intermédiaire par le binairereformer 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 bitmultiplication par 2001101₂ → 011010₂ : 13 → 26
décalage à gauche de k bitsmultiplication par 2ᵏ000101₂ << 3 = 101000₂ : 5 → 40
décalage à droite de 1 bitdivision entière par 2011011₂ → 001101₂ : 27 → 13
décalage à droite de k bitsdivision 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.

  1. Écrire la valeur positive sur le nombre de bits imposé.
  2. Inverser tous les bits.
  3. 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 absolueinverser 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égatifchanger le bit de signeinverser tous les bitsinverser les bits puis ajouter 1
nombre de zérosdeuxdeuxun seul
plage sur n bits−(2ⁿ⁻¹−1) à +(2ⁿ⁻¹−1)−(2ⁿ⁻¹−1) à +(2ⁿ⁻¹−1)−2ⁿ⁻¹ à +(2ⁿ⁻¹−1)
addition matériellegestion particulière des signescorrection de retenue circulaireaddition binaire directe
usage actuellimitéraretrè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.

  1. Identifier la base de chaque donnée et vérifier la validité des chiffres.
  2. Préciser la largeur en bits lorsqu’elle influence la plage ou le résultat.
  3. Déterminer si les nombres sont signés ou non signés.
  4. Choisir la méthode de conversion ou d’opération adaptée.
  5. Conserver les zéros utiles pendant les regroupements et les calculs.
  6. Vérifier le résultat dans une seconde base, généralement la base 10.
  7. 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éparationchoisir cinq nombres décimaux, dont au moins un nombre supérieur à 255 et deux nombres fractionnaires
2. Conversion manuelleconvertir les parties entières en bases 2, 8 et 16 ; limiter les fractions binaires à 8 chiffres si nécessaire
3. Vérificationutiliser l’outil pour vérifier chaque résultat et expliquer les écarts d’arrondi
4. Arithmétiqueeffectuer deux additions et une soustraction sur 8 bits, en non signé puis en signé
5. Débordementconstruire un exemple produisant une retenue non signée et un autre produisant un overflow signé
6. Compte rendupré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

Basenombre de chiffres distincts utilisés par un système de numération.
Bitchiffre binaire prenant la valeur 0 ou 1.
MSBbit de poids fort, situé à gauche du mot.
LSBbit de poids faible, situé à droite de la partie entière.
Poidspuissance de la base associée à une position.
Mot binaireensemble de bits traité comme une unité.
Retenuebit reporté vers la colonne de poids supérieur lors d’une addition.
Empruntunité prise à une colonne supérieure lors d’une soustraction.
Complément à 1codage négatif obtenu par inversion de tous les bits.
Complément à 2codage 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₂.