Mise à jour le, 29/12/2019
Visiteurs N°
Accueil |
Sommaires |
Micro-ordinateurs |
Physique |
Technologies |
Formulaires Mathématiques |
Accès à tous nos Produits |
Aperçu de tous nos Produits |
Nos Leçons aux Formats PDF |
Informatique |
Forums |
Divers et autres |
Opérations dans le Système Octal | Opérations dans le Système Hexadécimal | Soustraction en Complément à deux |
Représentation des Nombres avec leur Signe | Nombres à Plusieurs Bytes | Bas de page |
Opérations Arithmétiques dans les Différents Systèmes :
3. - OPÉRATIONS ARITHMÉTIQUES DANS LES DIFFÉRENTS SYSTÈMES
On peut évidemment effectuer les quatre opérations arithmétiques fondamentales (addition, soustraction, multiplication et division) non seulement dans le système décimal mais aussi dans les autres systèmes numériques et en particulier dans le système binaire ; les règles du système décimal seront valables pour ces opérations.
3. 1. - OPÉRATIONS DANS LE SYSTÈME BINAIRE
Pour additionner deux nombres binaires, on procède de la même façon que dans l'arithmétique des nombres décimaux.
On écrit les nombres sur des lignes successives en les mettant en colonne, en partant de la droite ; ensuite on additionne les chiffres de chaque colonne en commençant par celle de droite.
Exemple : additionner les nombres 1100101112 et 10100112 :
Additionner les nombres 1012, 1112, 12, 1102 :
On notera que, dans la troisième colonne, on a l'addition suivante : 1 + 1 + 1 + 1 avec retenue de 10.
Dans ce genre de cas, la dernière retenue consiste à mettre "0" dans la première colonne située immédiatement à gauche et "1" dans celle qui suit.
Voyons maintenant la soustraction ; cette opération peut aussi être faite selon la règle traditionnelle de la mise en colonne, en partant de la droite et en ayant recours éventuellement à des unités d'emprunt dans chaque colonne.
En particulier, quand le chiffre du premier terme est "0" et celui correspondant au second terme est "1", dans le premier terme on inverse tous les chiffres situès à gauche jusqu'au premier 1 inclus, et on met "1" devant le "0" initial pour former ainsi le nombre binaire 10. De ce nombre, on soustrait ensuite le chiffre 1 du second terme, en se rappelant que dans le système binaire, on a : 10 - 1 = 1.
Exemple : soustraire de 101110110002 le nombre 11001112 :
L'addition et la soustraction sont les deux opérations les plus importantes et les plus utilisées au sein des calculateurs.
La multiplication et la division, comme les opérations précédentes, se calculent toujours selon les règles arithmétiques traditionnelles ; elles sont peu utilisées ; on verra toutefois un exemple de calcul pour chaque opération.
Exemple de multiplication :
Exemple de division :
Les deux opérations précédentes ne devraient présenter aucune difficulté puisque les calculs consistent surtout à multiplier des chiffres binaires (c'est-à-dire 0 x 0 = 0 ; 0 x 1 = 0 ; 1 x 0 = 0 ; 1 x 1 = 1) et à soustraire directement deux nombres pour la division.
3. 2. - OPÉRATIONS DANS LE SYSTÈME OCTAL
Dans ce paragraphe, on examinera les opérations d'addition et de soustraction dans le système octal. Comme pour le système binaire, on applique les mêmes règles pour les nombres octaux.
Toutefois, dans ce cas, on aura la retenue "1" à gauche à chaque fois que la somme dépasse 7 et il serait bon de se servir du tableau de la figure 4.
Pour additionner deux chiffres octaux, on cherche ces chiffres dans le tableau : un en début de colonne, l'autre en début de ligne ; la somme se trouve dans la case correspondant au croisement entre colonne et ligne.
Par exemple, si l'on doit additionner les chiffres octaux 7 et 5, on cherche la somme dans la case située au croisement de la colonne 7 et de la ligne 5. Dans cette case, on trouve 14. Ainsi, dans le système octal, on aura :
7 + 5 = 14
Exemple d'addition octale :
Pour la soustraction, après avoir transféré par la méthode habituelle les emprunts éventuels, on utilise le tableau de la figure 4, en procédant par ordre inverse : D'abord, on lit en début de colonne le chiffre du second terme ; puis on cherche dans cette même colonne le nombre du premier terme (formé éventuellement en posant devant lui l'unité d'emprunt) ; ensuite, on lit la différence en début de ligne.
Exemple de soustraction octale :
3. 3. - OPÉRATIONS DANS LE SYSTÈME HEXADÉCIMAL
Étendons maintenant les règles arithmétiques aux nombres hexadécimaux, en rappelant que l'on aura une retenue de 1 dans la colonne de gauche à chaque fois que la somme dépasse F, (F = 1510).
Si l'on doit additionner deux chiffres hexadécimaux, on utilisera le tableau de la figure 5 avec la même méthode que pour celui de la figure 4 pour les calculs octaux.
Exemple d'addition hexadécimale :
Pour la soustraction, on peut appliquer la même règle que celle utilisée dans le système octal.
Exemple de soustraction hexadécimale :
3. 4. - LA SOUSTRACTION EN COMPLÉMENT À DEUX
Les circuits du micro-calculateur ne peuvent pas soustraire directement des nombres binaires, mais seulement les additionner. Il est donc nécessaire de trouver une méthode pour transformer les soustractions en additions. La procédure est relativement simple si l'on se sert du complément à deux relatif au deuxième terme. Pour connaître la méthode des complémentations, il faut d'abord voir comment elle se présente dans le système décimal et plus précisément, dans la soustraction :
7 - 4 = 3
En additionnant 10 aux deux termes de l'égalité, celle-ci ne change pas ; on a donc :
7 - 4 + 10 = 3 + 10
On peut écrire l'expression ci-dessus de la façon suivante :
7 + (10 - 4) = 10 + 3
Maintenant, en effectuant la soustraction que l'on a écrite entre parenthèse, on obtient :
7 + 6 = 13
En ôtant le "1" de "13", on obtient 3, c'est-à-dire exactement la différence entre "7" et "4". La quantité "10 - 4 = 6" est appelée complément à "10" de "4". De la même façon, 3 sera le complément à "10" de "7" et ainsi de suite.
On a donc vu qu'en substituant au second terme ("4" dans l'exemple cité) son complément à "10", la soustraction peut être faite en additionnant les deux termes tout en ignorant la retenue.
Exemple :
Effectuons la soustraction 6 - 2. Le complément à "10" de 2 est 10 - 2 = 8 ; donc :
6 + 8 = 14
En ignorant la retenue, comme on l'a déjà dit, il nous reste 4, différence entre 6 et 2.
On peut remarquer que le problème n'a pas été totalement résolu puisque pour obtenir le complément à dix, il est de toute façon nécessaire de faire une soustraction et, calculer "10 - 4" n'est pas plus simple que "7 - 4". Mais en code binaire les calculs changent, en effet, dans ce code, l'équivalent du complément à dix est le complément à deux et pour l'introduire, il est nécessaire de faire un passage intermédiaire, qui est le complément à 1 du nombre binaire choisi. Ce complément s'obtient en inversant tous les bits du nombre, c'est-à-dire en mettant 0 à la place de 1 et vice versa.
Ainsi, le complément à 1 de 10 01 11 01 est 01 10 00 10.
C'est une opération que l'on peut faire aisément dans les circuits digitaux car, pour faire le complément d'un nombre il suffit de l'envoyer à un circuit inverseur qui agira sur chaque bit du nombre. Ensuite, on obtient le complément à 2 en ajoutant simplement "1" au complément précédent.
Par exemple, le complément à "2" de 10 01 11 01 est :
Une autre règle permet d'obtenir le complément à "2", elle s'énonce de la façon suivante :
On recopie le nombre dont on veut trouver le complément à "2" de la droite vers la gauche jusqu'au premier "1" rencontré ; on complémente ensuite tous les bits à sa gauche.
Par exemple, faisons le complément à "2" du nombre binaire 10 110 100.
En partant de la droite, on a deux "0" et un "1" que l'on recopie simplement ; à partir de cet instant, on termine l'écriture du nombre en complétant chaque bit.
Arrivé à ce stade, il est facile de comprendre comment une soustraction binaire peut être transformée en addition.
Voyons l'exemple suivant :
En faisant l'opération par une addition du premier terme au complément à "2" du second terme, la retenue finale ne sera pas prise en considération comme pour le système décimal vu précédemment. On obtiendra donc :
La différence est donc : 0 1 1 1.
3. 5. - REPRÉSENTATION DES NOMBRES AVEC LEUR SIGNE
Pour représenter un nombre dans les ordinateurs, on utilise une quantité donnée de bits (8, 16, 32).
Avec 8 bits (1 octet), on obtient toutes les combinaisons comprises entre 0 0 0 0 0 0 0 02 et 1 1 1 1 1 1 1 12, c'est-à-dire entre 010 et 25510.
Si l'on veut accroître le champ des nombres représentés, il est nécessaire d'ajouter d'autres bits ; par exemple, avec 16 bits (équivalent à 2 octets), on peut représenter tous les nombres décimaux entre 010 et 65 53510 ; avec 32 bits (4 octets), on peut représenter tous les nombres décimaux qui vont de 010 à 4 294 967 29510.
Dans tous les cas, il s'agit toujours de nombres naturels, mais en considérant le premier bit à gauche d'un octet ou d'un groupe d'octets, on peut aussi représenter les nombres signés, c'est-à-dire les nombres positifs (identifiés par le signe +) et négatifs (identifiés par le signe -).
On peut associer le 0 au signe + et le 1 au signe -. Ainsi, le nombre décimal + 23 sera exprimé, dans le système binaire, de la façon suivante :
Le nombre décimal - 23, toujours dans le système binaire, sera par contre exprimé de la façon suivante :
En prenant en compte le signe, le champ des nombres se trouve modifié car de 0 à 255 on passe à - 127 à + 127 mais l'amplitude reste constante à 256 valeurs.
Voyons, par exemple, le champ numérique
d'un octet (8 bits). Celui-ci peut comprendre tous les nombres naturels de
0
à
255
ou bien tous les nombres relatifs de
- 127
à
+ 127
(figure 6).
Champ hexadécimal | Champ décimal | Champ binaire (en signe et valeur absolue) |
7F | + 127 | 0 1 1 1 1 1 1 1 |
7E | + 126 | 0 1 1 1 1 1 1 0 |
7D | + 125 | 0 1 1 1 1 1 0 1 |
03 | + 3 | 0 0 0 0 0 0 1 1 |
02 | + 2 | 0 0 0 0 0 0 1 0 |
01 | + 1 | 0 0 0 0 0 0 0 1 |
00 | + 0 | 0 0 0 0 0 0 0 0 |
80 | - 0 | 1 0 0 0 0 0 0 0 |
81 | - 1 | 1 0 0 0 0 0 0 1 |
82 | - 2 | 1 0 0 0 0 0 1 0 |
FE | - 126 | 1 1 1 1 1 1 1 0 |
FF | - 127 | 1 1 1 1 1 1 1 1 |
Note : Les nombres du champ hexadécimal sont obtenus en écrivant la valeur hexadécimale des deux quartets qui composent le nombre correspondant du champ binaire (octet).
En observant la colonne intitulée champ binaire (en signe et valeur absolue) du tableau de la figure 6, on remarque que l'on a deux codes différents pour le 0 : 0000 0000, que l'on pourrait aussi écrire + 0, et 1000 000 que l'on pourrait écrire - 0.
Donc, en incluant les deux codes du 0, l'amplitude des champs est toujours de 256 nombres que ce soit dans le cas des nombres naturels ou bien dans celui des nombres relatifs.
Ce nouveau système binaire de numération est un progrès, mais n'est pas encore satisfaisant. A titre démonstratif, effectuons l'addition suivante, en utilisant la représentation binaire avec signe :
Le résultat 1 0 0 0 1 1 0 0 équivaut à - 12 et non à + 2, comme cela devrait être. L'addition binaire des nombres avec leur signe ne nous donne donc pas automatiquement le résultat exact à l'intérieur du système adopté.
Il est donc nécessaire de le modifier comme suit :
On représente toujours les nombres
positifs selon le code binaire normal (le signe +
est encore un
0) ; les nombres négatifs,
par contre, sont représentés en utilisant le complément à deux de leur
valeur absolue et en conservant le bit
1
comme bit représentant le signe -
(figure 7).
Champ hexadécimal | Champ décimal | Champ binaire (en complément à deux) |
7F | + 127 | 0 1 1 1 1 1 1 1 |
7E | + 126 | 0 1 1 1 1 1 1 0 |
7D | + 125 | 0 1 1 1 1 1 0 1 |
4 | + 4 | 0 0 0 0 0 1 0 0 |
3 | + 3 | 0 0 0 0 0 0 1 1 |
2 | + 2 | 0 0 0 0 0 0 1 0 |
1 | + 1 | 0 0 0 0 0 0 0 1 |
0 | 0 | 0 0 0 0 0 0 0 0 |
FF | - 1 | 1 1 1 1 1 1 1 1 |
FE | - 2 | 1 1 1 1 1 1 1 0 |
FD | - 3 | 1 1 1 1 1 1 0 1 |
83 | - 125 | 1 0 0 0 0 0 1 1 |
82 | - 126 | 1 0 0 0 0 0 1 0 |
81 | - 127 | 1 0 0 0 0 0 0 1 |
80 | - 128 | 1 0 0 0 0 0 0 0 |
Dans l'exemple précédent, + 7 sera encore représenté par 0 0 0 0 0 1 1 1; le nombre négatif - 5 sera par contre exprimé par 1 1 1 1 1 0 1 1.
Avec la nouvelle représentation, effectuons à nouveau la somme :
Avec cette nouvelle méthode, on obtient la somme exacte 0 0 0 0 0 0 1 0 (on ne tient pas compte de la retenue).
Jusque-là, il n'y a rien de nouveau par rapport à la soustraction faite avec la méthode du complément à deux. Considérons toutefois un autre cas.
Si l'on examine le résultat, on voit tout d'abord qu'il représente un nombre négatif, le premier bit étant à 1.
En outre, 1 1 1 1 1 0 0 est le complément à deux de 4. En interprétant le nombre selon la nouvelle méthode, on en déduit que le résultat exact est - 4.
Les nombres traités par les ordinateurs sont généralement codés par cette méthode. En effet, de cette façon, le résultat d'une addition entre nombres relatifs est automatiquement exact (s'il n'y a pas de dépassement de capacité) et la soustraction est à considérer comme une addition de nombres relatifs.
Par exemple, si l'on doit soustraire - 2 de + 4, on transforme l'opération, en l'addition des nombres + 4 et + 2, car + 4 - (- 2) = + 4 + 2.
On obtient :
La somme 0 0 0 0 0 1 1 0 équivaut à 6, valeur décimale du résultat de la soustraction.
3. 6. - NOMBRES A PLUSIEURS BYTES
Dans la mémoire des micro-ordinateurs, les cases disponibles pour enregistrer un nombre ont généralement une longueur donnée : 1 byte, par exemple, correspond souvent à un nombre de 8 bits.
Supposons que l'on ait à enregistrer un nombre formé d'une quantité de bits supérieure aux huit bits qui constituent un byte. Dans de tels cas, on utilise deux ou plusieurs bytes pour stocker ce nombre et on devra donc réserver dans la mémoire deux ou plusieurs emplacements de 8 bits pour ce seul nombre.
Dans la mémoire, le nombre sera de préférence stocké dans des cases contiguës, comme on le voit dans le schéma suivant (rien n'interdit cependant d'avoir les deux bytes dans des cases non adjacentes).
Comment effectuera-t-on des opérations avec des nombres occupant deux ou plusieurs bytes en mémoire ?
Il faut en effet savoir que l'ordinateur peut travailler seulement avec des nombres ayant une longueur donnée.
Supposons que l'on veuille additionner deux nombres de 2 bytes en utilisant un ordinateur conçu pour des nombres de 8 bits.
L'addition, dans ce cas, doit être effectuée en deux temps : un premier temps pour le byte 0 et un deuxième temps pour le byte 1.
Dans un premier temps, l'ordinateur additionne les parties de droite des deux termes (les moins significatives) ; dans un deuxième temps, il additionne les parties de gauche en tenant compte de la retenue éventuelle, produite par la somme précédente.
Une telle retenue est stockée dans une case appropriée de l'unité centrale pour pouvoir être additionnée au bit le moins significatif du byte suivant, ou bien pour être utilisée par exemple comme indicateur d'overflow (dépassement) quand on dépasse la capacité de l'ordinateur.
Dans les tableaux des figures 6 et 7, en plus du champ binaire et du champ décimal, le champ hexadécimal correspondant est reporté ; la représentation hexadécimale n'est pourtant pas utilisée dans les derniers calculs car on a voulu montrer simplement les problèmes arithmétiques imposés par les caractéristiques opérationnelles de l'ordinateur.
Les nombres hexadécimaux et parfois même les nombres octaux, sont utilisés exclusivement par le programmateur en substitution des expressions binaires pour éviter des fautes de lecture et de transcription. On reparlera de ces nombres par la suite.
Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet. | Haut de page |
Page précédente | Page suivante |
Envoyez un courrier électronique à Administrateur Web Société pour toute question ou remarque concernant ce site Web.
Version du site : 10. 4. 12 - Site optimisation 1280 x 1024 pixels - Faculté de Nanterre - Dernière modification : 02 Septembre 2016.
Ce site Web a été Créé le, 14 Mars 1999 et ayant Rénové, en Septembre 2016.