Quel est l'avantage du complément de 2 par rapport au complément de 1 dans la représentation numérique négative dans le système de nombres binaires? Comment cela affecte-t-il la plage de valeurs stockées dans une certaine représentation de nombre de bits dans un système binaire?
Le principal avantage du complément à deux par rapport à son complément est que le complément à deux n'a qu'une valeur pour zéro. Son complément a un zéro "positif" et un zéro "négatif".
Ensuite, pour ajouter des nombres en utilisant son complément, vous devez d'abord faire une addition binaire, puis ajouter une valeur de fin de parcours.
Le complément à deux n'a qu'une valeur pour zéro et ne nécessite pas de valeur de retenue.
Vous avez également demandé comment la plage de valeurs stockées est affectée. Considérons une valeur entière de huit bits, les valeurs minimales et maximales suivantes sont les suivantes:
Notation Min Max
========== ==== ====
Unsigned: 0 255
One's Comp: -127 +127
Two's Comp: -128 +127
Les références:
Les principaux avantages sont:
Dans 1 il y a un -0
(11111111
) et un +0
(00000000
), c’est-à-dire deux valeurs pour le même 0
. D'autre part, dans le complément à 2, il n'y a qu'une seule valeur pour 0
(00000000
). Ceci est dû au fait
+0 --> 00000000
et
-0 --> 00000000 --> 11111111 + 1 --> 00000000
Tout en effectuant des opérations arithmétiques telles que l’addition ou la soustraction à l’aide de 1, nous devons ajouter un bit de retenue supplémentaire, c’est-à-dire 1
au résultat pour obtenir la réponse correcte, par exemple:
+1(00000001)
+
-1(11111110)
-----------------
= (11111111)
mais la bonne réponse est 0
. Afin d'obtenir 0
nous devons ajouter une retenue 1
au résultat (11111111 + 1 = 00000000
).
En complément à 2, le résultat ne doit pas être modifié:
+1(00000001)
+
-1(11111111)
-----------------
= 1 00000000
Entiers négatifs: Le complément à 2 est logique pour être utilisé pour les entiers négatifs. Le complément à 1 est simplement une technique de calcul qui pourrait être utile pour évaluer le complément à 2. Le rival réel (vaincu) du complément à 2 était la représentation de l'amplitude du signe pour les entiers négatifs.
Aucun débordement: Le complément à 1 n'a pas d'utilisation particulière pour les entiers négatifs. Le complément à 2 a du sens car il peut être utilisé en arithmétique naturelle d'addition et de soustraction sans qu'il soit nécessaire de changer les bits. En l'absence de débordement, le bit de signe du résultat est juste la bonne valeur. La promotion du nombre de bits dans cette notation est directe, par exemple, pour promouvoir un entier signé de 8 bits à 16, nous pourrions simplement répéter le bit de signe de valeur entière dans son octet de poids fort.
Magnitude de signe: Au contraire, la notation de magnitude de signe est juste la façon dont l’homme utilise pour représenter des entiers négatifs. L'arithmétique de promotion du nombre de bits et de soustraction d'addition est un désordre avec cette notation.
Dans la représentation Complément à deux, la valeur zéro est uniquement représentée par le fait que tous les bits sont mis à zéro:
**
** Lorsque vous effectuez une opération arithmétique (addition, soustraction, multiplication, division, etc.) sur deux entiers signés dans la représentation du complément à deux, vous pouvez utiliser exactement la même méthode que si vous aviez deux entiers non signés (entiers non négatifs avec pas de signe) ... SAUF, vous jetez le portage haut (ou le prêt haut pour soustraction)
Cette propriété de la représentation de Two’s Complement est si
l’ordinateur disponible à ce jour utilise Two’s Complement. Pourquoi? Car, avec Two’s Complement, nous n’avons pas besoin d’algorithmes spéciaux (et donc de circuits supplémentaires) pour les opérations arithmétiques impliquant des valeurs négatives.
Un autre avantage majeur de la représentation du complément de Two par rapport au bit signé est que la représentation du complément de 2 est facile à manipuler en matériel.
Le complément à 2 n'est pas pour représenter un nombre négatif, c'est un inverse.
Cela signifie que vous pouvez faire A + B '(où B' est le complément à 2 de B) pour donner A - B, cela signifie que vous pouvez tout faire avec un additionneur sans avoir besoin d'un soustracteur