2011-04-25 4 views
0

Comment 1.000 (base2) x 2^-1 + (-0.111 (base2) x 2^-1) = 0.001 (base2) x 2^-1? Pour ajouter des nombres binaires, ne pas simplement ajouter? Je ne vois pas comment l'addition fonctionne ..Addition de points flottants binaires

+0

Le deuxième nombre est négatif, donc c'est vraiment une soustraction. –

Répondre

2

Je ne suis pas sûr de ce que vous voulez dire lorsque vous demandez "ne vous ajoutez pas simplement?", Mais le calcul est correct. C'est fondamentalement dans la notation scientifique de base-2.

1.000(base2) x 2^-1 = 0.100(base2) 
-0.111(base2) x 2^-1 = -0.0111(base2) 

0.100 + (-0.0111) = 0.0001 

0.0001 = 0.001(base2) x 2^-1 
1

Les choses sont beaucoup plus compliquées avec les nombres à virgule flottante. Commençons par les entiers.

Pour transformer un nombre positif en négatif, vous inversez tous les bits et vous en ajoutez un. C'est ce qu'on appelle l'arithmétique «complément à deux». -0111 devient 11111001 si nous utilisons des nombres de 8 bits pour notre exemple.

Maintenant, lorsque vous additionnez les nombres, 00001000+11111001=100000001. Le débordement du bit le plus élevé est jeté, vous laissant 00000001.