2009-11-03 6 views
3

En 2 compléments je lis de wikipedia, la gamme est de -128 à 127. Donc je me demande comment on peut représenter 128 en 2 comme il est hors de gamme ci-dessus?comment représenter le nombre hors plage en binaire?

+0

http://en.wikipedia.org/wiki/Two% 27s_complement (Utilisez 8 octets pour représenter) – root

+1

@tsubasa - vous semblez être bloqué sur l'idée que "2s complement" == "8 bits", mais ce n'est pas le cas. Êtes-vous coincé avec l'utilisation de 8 bits? – detly

Répondre

6

Vous utilisez plus de bits.

La plage de -128 à +127 correspond à 256 valeurs uniques, soit 8 bits. Si vous avez besoin d'une plus grande gamme, vous avez besoin de plus de bits.

Il n'y a rien qui limite les nombres 2s-complément aux valeurs de 8 bits. Par exemple, un nombre de 2 bits en complément de 16 bits va de -32768 à +32767.

+0

Mais j'ai entendu parler de la terminologie wrap-around? Utilise-t-il plus de bits dans le wrap-around? – root

+0

N'est-il pas encore autorisé en 2-complément: 1 + 127 = 128? – root

+0

Lorsque le bit le plus à gauche d'un nombre 2s-complément est défini, il s'agit d'un nombre négatif. Essentiellement, la moitié des nombres que vous pouvez représenter avec un certain nombre de bits est négative et l'autre moitié est non négative. "Wrapping around" est symétrique pour tout nombre binaire de taille 2s-complémentaire. –

-1

Vous ne pouvez pas, si vous avez seulement 8 bits pour travailler avec. Sauf si vous êtes prêt à traiter traiter 1000 0000 comme à la fois − 128 et +128.

+1

"traiter 1000 0000 comme -128 et +128": comment différencieriez-vous les deux? – Amro

+0

Dépend du contexte. Si vous ajoutez, vous pouvez autoriser +128 comme résultat max, et inversement si vous soustrayez/décrémentez, vous pouvez autoriser -128 comme min. Je n'ai pas dit que c'était forcément une bonne idée, juste une possibilité. –

1

8 bits vous donne la gamme: [-2^7 , 2^7-1] = [-128,127]

En général, le complément de 2 à l'aide n bits peuvent représenter des nombres dans la gamme:

-2^(n-1) to +2^(n-1)-1 
Questions connexes