Pregunta

Aunque es simple, no pude encontrarlo buscando en Google.Como sabemos, la representación de punto flotante admite un rango más amplio de números y la operación es más lenta que con números enteros puros.También sabemos cómo se utilizan la mantisa y los exponentes para representar un punto flotante.Pero mi pregunta es que, digamos, en un sistema de 32 bits, s* b^e la salida es más larga que 32 bits o 32 bits.(donde s=significativo, b=base,e=exponente)

¿Fue útil?

Solución

El número exacto de bits utilizados para representar la mantisa y el exponente de los números de punto flotante varía de una CPU a otra, por lo que la pregunta ciertamente depende de la arquitectura.

Hay un estándar que es muy dominante: Punto flotante IEEE, y según esta pregunta SO relacionada Todas las CPU principales que probablemente encontrará hoy lo implementan, incluida la IA32.

Según Wikipedia, el punto flotante IEEE requiere que al menos uno de los siguientes esté disponible en cualquier implementación:

  • binario32:Mantisa de 24 bits (incluido 1 bit de signo) y exponente de 8 bits
  • binario64:Mantisa de 53 bits (incluido 1 bit de signo) y exponente de 11 bits

Suponiendo que por 32 bits te refieres al Familia IA 32 (que es sólo una de las pocas arquitecturas que utiliza 32 bits), entonces el punto flotante se registra puede contener hasta 80 bits, lo que significa que se pueden admitir binario32, binario64 y un formato de 80 bits no IEC con 15 bits de exponente.Para diferenciar entre instrucciones de 32 y 64 bits, la mayoría de los ensambladores usan modificadores de tamaño como QWORD o DWORD.

Además, además de las implementaciones de CPU, los idiomas también pueden requerir conformidad con el punto flotante IEEE.En lenguaje C, por ejemplo, el Anexo 7 especifica que si la macro __STDC_IEC_599__ es definido automáticamente por el compilador entonces float se garantiza que es binario32 y double binario64. long double no está fijado para ser IEC, por lo que podría usar 80 bits en un arco IA32.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top