Multiplicación de puntos fijos con números negativos.


8

Estoy perplejo con un problema simple. Digamos que tengo dos números de 4 bits en formato Q0.3. Un bit de signo y tres bits fraccionarios. Entonces puedo representar−1 a través de 0.875.

Digamos ahora que deseo hacer este cálculo: −0.25×0.875. Cual es:

−223×723

Lo que significa que estoy multiplicando 1110 (−2) por 0111 (7) Por supuesto la respuesta es−0.21875 o −0.25 usando el número Q0.3 más cercano.

Hagamos el trabajo.

1110×0111=01100010

que cuando se ve como un número Q0.6 es 1.100010, cual es −0.46875por mis libros ¿Por qué es esto incorrecto? Espero una respuesta de1.110010 (−0.21875)

¿Qué he hecho mal?

Respuestas:


10

Al multiplicar los números complementarios de dos, debe realizar extensiones de signo a los operandos para cumplir con el número de dígitos que producirá su multiplicación, es decir, en su caso 4+4=8 dígitos

111111102×000001112=111100102

Como los hay 2∗3 bits fraccionarios, el resultado es 1.1100102=−1426=−0.21875. Normalizando este número a3 bits fraccionales en formato Q0.3 rinden 1.1102=−0.25.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.