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 representar1 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 es0.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 23 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.