simple resueltos representar representacion punto numeros numero flotante ejercicios ejemplos doble coma binarios binario binary floating-point ieee-754

binary - resueltos - ¿Cómo hago la conversión de un número decimal al formato de punto flotante de precisión simple IEEE 754?



representacion de numeros binarios en coma flotante (3)

¿Cómo haría para cambiar manualmente un número decimal (base 10) al formato de punto flotante de precisión simple IEEE 754? Entiendo que hay tres partes, un signo, un exponente y una mantisa. Simplemente no entiendo completamente lo que representan las dos últimas partes.


Encuentra la potencia más grande de 2 que es más pequeña que tu número, por ejemplo, si comienzas con x = 10.0, entonces 2 3 = 8, entonces el exponente es 3. El exponente está polarizado en 127, por lo que esto significa que el exponente se representará como 127 + 3 = 130. La mantisa es entonces 10.0 / 8 = 1.25. El 1 está implícito, así que solo necesitamos representar 0.25, que es 010 0000 0000 0000 0000 0000 cuando se expresa como una cantidad fraccionaria sin firmar de 23 bits. El bit de signo es 0 para positivo. Entonces tenemos:

s | exp [130] | mantissa [(1).25] | 0 | 100 0001 0 | 010 0000 0000 0000 0000 0000 | 0x41200000

Puede probar la representación con un simple programa en C, por ejemplo

#include <stdio.h> typedef union { int i; float f; } U; int main(void) { U u; u.f = 10.0; printf("%g = %#x/n", u.f, u.i); return 0; }


Tome un número 172.625. Este número es el formato Base10.

Convertir este formato está en formato base2 Para esto, primero convierta 172 a formato binario

128 64 32 16 8 4 2 1 1 0 1 0 1 1 0 0 172=10101100

Convertir 0.625 a formato binario

0.625*2=1.250 1 0.250*2=.50 0 0.50*2=1.0 1 0.625=101

Formato binario de 172.625 = 10101100.101. Esto está en formato base2 10101100 * 2

Cambiando este número binario

1.0101100*2 **7 Normalized 1.0101100 is mantissa 2 **7 is exponent

sumar exponente 127 7 + 127 = 134

convertir 134 en formato binario

134=10000110

El número es positivo así que el signo del número 0.

0 |10000110 |01011001010000000000000

Explicación: El orden alto de bit es el signo del número. número se almacena en un formato de magnitud de signo. El exponente se almacena en un formato de campo de 8 bits con un sesgo de 127 respecto al exponente. El dígito a la derecha del punto binario almacenado en el orden bajo de 23 bits. NOTA --- Este formato es un formato de punto flotante IEEE de 32 bits


Un número de punto flotante es simplemente una notación científica . Digamos que te pedí que expresaras la circunferencia de la Tierra en metros , usando la notación científica. Usted escribiría:

4.007516 × 10 7 m

El exponente es precisamente eso: el poder de diez aquí. La mantisa son los dígitos reales del número. Y el signo, por supuesto, es solo positivo o negativo. Entonces, en este caso, el exponente es 7 y la mantisa es 4.007516.

La única diferencia significativa entre IEEE754 y la notación científica de la escuela primaria es que los números de punto flotante están en la base 2 , por lo que no es diez veces la potencia de algo, sino dos veces la potencia de algo. Entonces, ¿dónde escribirías, por ejemplo, 256 en la notación científica humana común como:

2.56 × 10 2 (mantisa 2.56 y exponente 2),

en IEEE754, es

1 × 2 8 - la mantisa es 1 y el exponente es 8.