¿Los números de punto flotante no están normalizados antes de que el procesador realice operaciones aritméticas en ellos? [cerrado]

0

¿El procesador no normaliza los números en la notación IEEE 754 y normaliza el resultado después del almacenamiento o se realizan las operaciones aritméticas en los números como están? Lo pregunto porque en caso de multiplicación, digamos que los exponentes (denorm.) Son e1 y e2. los exponentes normalizados en, digamos, precisión simple serían e1 + 127 y e2 + 127, cuya adición llevará a e1 + e2 + 254, mientras que lo que queremos que sea la notación final es e1 + e2 + 127. TIA.

    
pregunta KHUSHBOO KOHLI

2 respuestas

1

Para la multiplicación, simplemente multiplica las mantisas y suma los exponentes, con un posible ajuste pequeño para renormalizar el resultado. No hay necesidad de desnormalizar nada primero.

Para sumar / restar, es necesario alinear los números, lo que significa hacer que sus exponentes sean iguales antes de tratar con las mantisas. El número con el exponente más pequeño se desnormaliza para alinear las cosas. Obviamente, si la diferencia en los exponentes es mayor que el ancho de la mantisa, no tiene sentido completar la operación, el número más pequeño se convierte en cero.

No confunda la desnormalización con el hecho de que los exponentes se almacenan en la notación "exceso-128". Ese es un tema completamente separado. Sí, necesitas convertir eso en complemento a 2 antes de hacer aritmética en los exponentes.

    
respondido por el Dave Tweed
-1

Por supuesto, depende de la operación. Por añadidura, no tiene sentido. El resultado binario no depende de la interpretación del campo exponente. Para la multiplicación, solo necesitas un sumador pequeño. Si desea una multiplicación rápida, no puede esperar en un sumador de 32 bits de propósito general. Tendrá un sumador dedicado para el campo exponente en la multiplicación, y ese sumador puede aplicar la normalización en hardware, en tiempo constante.

Las CPU que tienen una operación sin / cos normalmente pueden ignorar la mayoría de los valores de exponentes. O bien el exponente es tan pequeño que sin(x)=x o el resultado no tiene sentido. Para el rango pequeño de exponentes cercanos a 1.0, donde sin(x) no es trivial, puedes convertir a punto fijo.

    
respondido por el MSalters

Lea otras preguntas en las etiquetas