Multiplication de points fixes avec des nombres négatifs

8

Je suis perplexe sur un problème simple. Disons que j'ai deux nombres de 4 bits au format Q0.3. Un bit de signe et trois bits fractionnaires. Je peux donc représenter à .10.875

Disons maintenant que je souhaite faire ce calcul: . Lequel est:0.25×0.875

223×723

Ce qui signifie que je multiplie ( ) par ( ). Bien sûr, la réponse est ou utilisant le numéro Q0,3 le plus proche.11102011170.218750.25

Faisons le travail.

1110×0111=01100010

qui, lorsqu'il est considéré comme un numéro , est , ce qui correspond à dans mes livres. Pourquoi est-ce incorrect? J'attends une réponse de ( ).1.1000100.468751.1100100.21875

Qu'est ce que j'ai mal fait?

benjwy
la source

Réponses:

10

Lors de la multiplication des nombres complémentaires de deux, vous devez effectuer des extensions de signe aux opérandes pour atteindre le nombre de chiffres que votre multiplication produira, c'est-à-dire dans votre cas chiffres.4+4=8

111111102×000001112=111100102

Comme il y a bits fractionnaires, le résultat est . La normalisation de ce nombre à bits fractionnaires au format donne .231.1100102=1426=0.2187531.1102=0.25

Robin Klose
la source