Professional Documents
Culture Documents
Nombres relatifs
L'opposé d'un nombre x est, par définition, le nombre y tel que x + y = 0
On le note -x ; soit : y = -x ; ou encore : x + (-x) = 0
Une difficulté apparaît dans toutes les opérations faites avec des nombres binaires sur les calculateurs
numériques réels : les nombres binaires y ont un nombre de chiffres fixe (soit 8 soit16 soit 32 soit 64 bits
généralement suivant les processeurs).
C'est cette même limitation qui apparaît sur les compteurs kilométriques de véhicules. Limités par exemple à
six chiffres, lorsque le comteur arrive à 999 999, il retombe à 000 000.
Tout ce qui va être dit sur les opérations mathématiques suppose que les opérations se font sans
dépassement de la valeur maximale que peut prendre les format binaire choisi (nombre maximum de bits).
Si les nombres manipulés dépassent cette valeur il faudra avoir recours à un nombre supérieur de bits pour
représenter les nombres.
Pour simplifier, nous allons partir de nombres de 4 bits.Les nombres extrêmes dans ce format sont 0000 et
1111, soit en décimal : 0 et 15. Ce sont des entiers positifs..
Il exsite deux manières d'écrire dans ce format à la fois des nombres positifs et leurs opposés :
• Le le bit le plus signifiant (bit de gauche) représente le signe : 0 pour "plus" et 1 pour "moins".
• La valeur absolue est donnée par le reste des bits.
Exemple :
1/8
Nombres relatifs
• Les nombres dont le bit le plus signifiant (bit de gauche) est à zéro sont considérés comme positifs.
• Leurs opposés s'obtiennent par l'opération (toute naturelle) suivante : opposé = 0 - nombre
Ou encore : (-x) = 0 - x ; étant bien entendu que l'on reste à l'intérieur du format
(c.a.d. que l'on ignore les bits de dépassement dans l'opération)
Exemples :
Exemple :
En soustrayant les bits à droite de 0000 - 0101
on déclare : 0 - 1 = 1 je retiens 1 que je reporte sur le zéro suivant de 0000,
et ainsi de suite ...
Arrivés au bit le plus à gauche, 1 + 1 = 0 je retiens 1
que je ne reporte pas puisque je sors du format 4 bits.
2/8
Nombres relatifs
Nombre 2 1101 -3 Voir tableau précédent
Somme 0001 +1 Exact !
Avec 8 bits :
Avec 16 bits :
Lorsque l'on écrit un nombre binaire pourvant premdre des valeurs positives ou négatives (entier relatif),
il est indispensable d'en préciser le format (nombre de bits) dans lequel il est écrit.
Exemple:
Le nombre 1111 représente, en écriture décimale :
• le nombre entier 15 si on le considère comme écrit en binaire naturel ; quel que soit le format.
• le relatif - 1 si on le considère écrit en binaire 4 bits convention du complément à deux;
• le relatif - 7 si on le considère écrit en binaire 4 bits convention du bit de signe;
• le nombre relatif + 7 si on le considère écrit en binaire 16 bits convention du complément à deux.
Technique particulière
Pour obtenir l'opposé d'un nombre écrit en binaire relatif dans la convention du complément à deux on
change tous ses bits et on ajoute un. Il faut bien entendu opérer dans le format complet.
Exemple :
En binaire, dans la convention du complément à deux et sous format 4 bits, n = 101
Quel est son opposé ?
3/8
Nombres relatifs
Vérifions sur le tebleau situé plus haut dans cette page
que n = 101 = 5 et que 1011 = -5
Cette technique peut être mise à profit dans certains opérateurs de calcul
ou pour simplifier la recherche de la valeur absolue d'un nombre négatif donné en binaire...
On peut rigoureusement démonter que tout nombre réel positif pourrait ainsi écrit de cette manière.
Resterait à décrire le signe, ce qui peut être fait par un bit particulier (bit de signe)
ou par une convention de type complément à deux.
Beaucoup de ces variantes ont été utilisées dans les calculateurs.
Partie entière : 78
Nous opérons une suite de divisions par 2 et retenons les divers restes.
Ces restes sont repris à l'envers
4/8
Nombres relatifs
Résultat final :
Reste cependant que cette méthode est souvent dispendieuse en nombre de bits !
6,234 . 10 - 3
Notons que :
5/8
Nombres relatifs
• la partie entière ( ici 6 ) en valeur absolue est un nombre d'un seul chiffre de 1 à 9 (pas zéro)
• la partie décimale (ici 234) est séparée de la partie entière par un point (US) ou une virgule (EU)
• un exposant décimal entier relatif suit la lettre e ou E : e-3 ou E-3 signifient 10-3
Détails d'implémentation des nombres en virgule flottante au niveau de leur représentation binaire.
Normes IEEE
6/8
Nombres relatifs
Avec :
Bits 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0
En héxadécimal C4 81 E0 00
Second exemple.
7/8
Nombres relatifs
6,625 décimal = 110,1010 binaire
110,1010 = 1,101010 . 22
( 22 opère un décalage de 2 chiffres vers la droite après la virgule)
0
Bits 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1
0En héxadécimal C0 D4 00 00
Le bit de signe (bit b31) positionné à 1 indique un nombre réel négatif !
L'opposé de - 6,625, soit + 6,625, s'obtient en mettant le bit de signe b31 à 0
+ 6,625 se code 40 D4 00 00 en héxadécimal
http://pagesperso-orange.fr/arsene.perez-mas/numeration/numeration.htm#entiers
8/8