Accueil Formations Établissements Mon espace Services Galerie À propos Communauté Portfolio Contact Me contacter
Avertissement

Les montages de ce parcours se font en très basse tension, avec le 5 V d'une carte Arduino ou des piles. Les installations citées en exemple (pompe, chambre froide, gâche, feux, bus) sont aussi reliées au secteur ou à des batteries de puissance : toute intervention sur ces parties revient à un électricien habilité, et ce parcours ne qualifie pas pour la faire.

Leçon offerteModule 01 · Leçon 01.039 min

Nombres signés et calcul en binaire

Parcours 141 : Électronique numérique : de la porte logique à la machine à états · Fondamentaux

Objectif de la leçon

Additionner en binaire, représenter un nombre négatif en complément à deux et détecter un débordement.

La leçon, diapositive par diapositive

Diapositive 1 sur 8

Objectif de la leçon

  • Additionner deux nombres binaires
  • Coder un nombre négatif
  • Soustraire avec un additionneur
  • Repérer un débordement
Voix off

Un distributeur ajoute une pièce au crédit, un thermostat retire un degré à sa consigne, un boîtier compte les passagers qui montent et ceux qui descendent. Une puce passe son temps à calculer, et elle doit aussi manier des nombres négatifs. Tu vas d'abord additionner en binaire, puis représenter les nombres négatifs avec le complément à deux, la méthode de presque tous les processeurs. Elle a une propriété très pratique : elle permet de soustraire avec le circuit qui additionne. Une fois la leçon terminée, tu sauras aussi reconnaître un débordement, l'erreur qui survient quand le résultat ne tient plus dans le nombre de bits prévu.

Diapositive 2 sur 8

L'addition binaire

  • 0 + 0 = 0 ; 0 + 1 = 1
  • 1 + 1 = 10 : on pose 0, on retient 1
  • 1 + 1 + 1 = 11 : on pose 1, on retient 1
  • On avance de droite à gauche
Voix off

L'addition binaire se pose comme l'addition que tu as apprise à l'école, colonne par colonne, de droite à gauche. Il n'y a que quatre cas. Zéro plus zéro donne zéro. Zéro plus un donne un. Un plus un donne deux, qui s'écrit 10 en binaire : tu poses 0 et tu retiens 1. Et quand il y a déjà une retenue, un plus un plus un donne trois, soit 11 : tu poses 1 et tu retiens 1. C'est tout. Ces quatre règles, câblées avec quelques portes, forment l'additionneur que tu construiras dans le module 3.

Diapositive 3 sur 8

Un exemple posé

  • 0101 1011 (91)
  • + 0011 0110 (54)
  • = 1001 0001 (145)
  • Vérifie toujours en décimal
Voix off

Additionnons 91 et 54 sur huit bits. 91 s'écrit 0101 1011, et 54 s'écrit 0011 0110. Colonne de droite : un plus zéro, un. Deuxième colonne : un plus un, on pose zéro et on retient un. La retenue se propage ensuite sur plusieurs colonnes. Au bout du compte, tu obtiens 1001 0001. En additionnant les poids, 128 plus 16 plus 1, tu trouves 145, qui est bien 91 plus 54. Prends l'habitude de vérifier chaque calcul binaire en décimal : c'est rapide, et ça t'évite de propager une erreur dans tout un circuit.

Diapositive 4 sur 8

Coder un nombre négatif

  • Idée simple : un bit de signe, mais deux zéros
  • Complément à deux : le bit de poids fort pèse négatif
  • Sur 8 bits : de -128 à +127
  • 1111 1111 vaut -1
Voix off

Comment écrire moins 18 avec des 0 et des 1 ? L'idée la plus simple serait de réserver un bit pour le signe. Mais elle pose des problèmes : il y aurait un zéro positif et un zéro négatif, et l'addition ne marcherait plus directement. Les circuits utilisent donc le complément à deux. Sur huit bits, le bit de poids fort ne vaut plus 128 mais moins 128. Les autres gardent leurs poids habituels. 1111 1111 vaut donc moins 128 plus 127, soit moins 1. On code ainsi de moins 128 à plus 127, et un nombre est négatif quand son bit de poids fort vaut 1.

Diapositive 5 sur 8

Trouver l'opposé

  • Écris le nombre positif sur n bits
  • Inverse tous les bits
  • Ajoute 1
  • 18 = 0001 0010, donc -18 = 1110 1110
Voix off

Pour obtenir l'opposé d'un nombre en complément à deux, il y a une recette en deux temps. Tu inverses tous les bits, puis tu ajoutes 1. Prenons 18, qui s'écrit 0001 0010 sur huit bits. En inversant, tu obtiens 1110 1101. En ajoutant un, tu obtiens 1110 1110 : c'est moins 18. Vérifie avec les poids : moins 128, plus 64, 32, 8, 4 et 2, ça fait bien moins 18. Remarque que le même octet, lu comme un nombre sans signe, vaudrait 238. Le circuit ne sait pas lequel des deux tu veux : c'est le programme qui décide comment lire.

Diapositive 6 sur 8

Soustraire en additionnant

  • A - B = A + (opposé de B)
  • 45 - 18 : 0010 1101 + 1110 1110
  • Résultat : 0001 1011 = 27
  • La neuvième retenue est ignorée
Voix off

Le grand avantage du complément à deux, c'est qu'une soustraction devient une addition. Pour calculer 45 moins 18, tu additionnes 45 et l'opposé de 18. 45 s'écrit 0010 1101, et moins 18 s'écrit 1110 1110. En posant l'addition, tu obtiens un résultat de neuf bits, avec un 1 qui sort à gauche. Sur huit bits, cette retenue finale est simplement ignorée. Il reste 0001 1011, soit 27. C'est le bon résultat. Un processeur n'a donc besoin que d'un additionneur et de quelques inverseurs pour additionner et soustraire, ce qui économise beaucoup de portes.

Diapositive 7 sur 8

Le débordement

  • Le vrai résultat sort de la plage -128 à +127
  • 100 + 50 sur 8 bits signés donne 1001 0110, lu -106
  • Deux nombres de même signe, un résultat de signe opposé
  • Les processeurs ont un indicateur de débordement
Voix off

Attention au débordement. Sur huit bits signés, le plus grand nombre est 127. Si tu additionnes 100 et 50, le vrai résultat, 150, ne tient pas. Le circuit donne 1001 0110, qui se lit moins 106 en complément à deux. Le calcul est faux, et rien ne le signale à l'œil nu. La règle pour le repérer est simple : quand deux nombres de même signe donnent un résultat de signe opposé, il y a débordement. Les processeurs ont un indicateur prévu pour cela. Dans tes circuits, choisis assez de bits pour que ce cas n'arrive jamais en fonctionnement normal.

Diapositive 8 sur 8

À retenir

  • Addition : retenue dès que la somme dépasse 1
  • Opposé : inverser les bits, ajouter 1
  • Soustraire, c'est ajouter l'opposé
  • Même signe en entrée, signe contraire en sortie : débordement
Voix off

Retiens ces quatre points. L'addition binaire se pose colonne par colonne, avec une retenue dès que la somme dépasse un. En complément à deux, l'opposé d'un nombre s'obtient en inversant ses bits et en ajoutant un. La soustraction devient alors une simple addition, ce qui simplifie beaucoup les circuits. Le débordement se repère au signe : deux nombres de même signe ne peuvent pas donner un résultat de signe contraire. Enfin, un octet n'a pas de sens en soi : 1110 1110 vaut 238 ou moins 18 selon la façon dont le programme le lit.

À retenir

  • L'addition binaire suit les mêmes règles que l'addition décimale, avec une retenue dès que la somme dépasse 1.
  • En complément à deux, on obtient l'opposé d'un nombre en inversant tous ses bits puis en ajoutant 1.
  • Sur n bits signés, on code de moins 2 puissance n-1 à 2 puissance n-1 moins 1 ; au-delà, il y a débordement.

Fais les exercices, le quiz et obtiens ton certificat dans ton espace

Avec ton compte, les deux premiers modules sont offerts : leçons, labs, simulations, quiz et tuteur. Débloque la suite du parcours pour 100 000 GNF. Le certificat vérifiable, délivré à la fin, coûte 399 000 GNF.

Indépendance. Ce parcours est indépendant des fabricants de circuits intégrés et de cartes cités (Texas Instruments, Microchip, NXP, Arduino) et des auteurs des simulateurs utilisés (Logisim-evolution et Digital, logiciels libres) : il n'est affilié à aucun d'eux et le Certificat Elprofessor n'est délivré au nom d'aucun d'eux.