Tengo este número binario de 32 bits (00111111010000000000000000000000) y quiero saber como puedo ir a acerca de la conversión de un número de punto flotante.

Sin el uso de la programación o de un convertidor, ¿cómo puedo convertir manualmente este número binario de 32 bits en un número de punto flotante?

Gracias,

Dan

Wikipedia tiene una claro descripción de cómo romper el valor hacia abajo.
es que el patrón binario de un número entero (no flotante) que usted quiere saber lo que el punto flotante versión de ese número parece? O es que el patrón binario de un número de punto flotante, y usted quiere saber lo que se ve como en decimal 123.45678, lo que sea?

OriginalEl autor Supertecnoboff | 2013-01-24

2 Comentarios

  1. 10

    Suponiendo que usted es la búsqueda de un único punto flotante aquí es el formato:

    Primer dígito es el signo, el próximo 8 son el exponente y, finalmente, el pasado 23 de la mantisa.

    Por su número (00111111010000000000000000000000)

    Signo: 0 +

    Exponente: 01111110 es -1 (126-127)

    Mantisa: 10000000000000000000000 es de 1,5 (El ‘invisible’ primer bit se le da 1, entonces el segundo bit (sólo uno) es de 0,5, la próxima se han 0.25, entonces 0.125 y así sucesivamente)

    Usted, a continuación, calcular el valor tales como:

    signo * 2^exp * Mantisa

    1 * 2^-1 * 1.5

    1 * 0.5 * 1.5

    0.75

    Usted número de punto flotante es igual a 0,75.

    OriginalEl autor Pierre-Luc

  2. 2

    Si lo hace un poco mirando a su alrededor en la wikipedia y en otros lugares, lo que va a aprender es que el punto flotante de normas (hay varios diferentes, IEEE754 de ser la más conocida, ya que se utiliza en los ordenadores de sobremesa, etc (dsp tendrá su propio y a veces que se calcule más rápido)) «normalizar» el número. De punto flotante es todo sobre la ubicación del punto decimal, es decir, no de punto flotante entero tiene un implícita punto decimal a la derecha del número

    00111111010000000000000000000000. <--- here
    

    otros que todos los ceros para normalizar supongamos que estamos utilizando un formato en el que quiere que el número 1.xxxx en formato binario, así que tenemos que mover nuestro punto decimal

    001.11111010000000000000000000000
    

    el decimal se movió justo después de que el más significativo (de modo que sólo un 1 está a la izquierda del punto decimal).

    si te acuerdas de matemáticas en la escuela secundaria 123 puede ser escrito como 1.23 * 10^2 (diez a la potencia de 2). 123 también es 123 * 10^0. Cada lugar que mover la coma decimal a la izquierda en una base 10 el número de aumentos de la potencia de 10 por uno. Cada lugar a la derecha disminuye. No es diferente en el binario, que es la base 2, de cada lugar que mover la coma decimal a la izquierda de aumentar la potencia de 2 (binario es la base 2) de cada lugar de la derecha, disminución de la potencia de 2.

    Así, para ser exactos nuestro número es ahora

    1.1111101 * 2^30
    

    Ahora los detalles del formato de punto flotante entran en juego. Porque el 1 a la izquierda del punto decimal (Excepto para el número exacto de cero y algunas otras excepciones) es que se supone que hay, a veces no en el final de la representación binaria para ese número de punto flotante, es un desperdicio de espacio para poner un poco que sabemos es siempre uno cuando en su lugar, podríamos tener uno más bits para la mantisa. El mantissas a menudo son wysiwyg en el binario, el exponente es el que te deja de rascarse la cabeza, esp con IEEE754. Un exponente de 128 por ejemplo, en el formato binario para el número podría representar 2 a la potencia 0 129 podría ser de 2 a la potencia de 1, y así sucesivamente. esto puede parecer extraño, pero es nada más que un dos complementar campo para algunos de estos formatos, otros tienen otras maneras de hacer las cosas. Individuales, dobles, extendidas tienen diferentes números de bits para el exponente y usted tiene que averiguar lo que usted agrega a la real exponente (30 en este caso) para obtener el patrón de bits que va en el exponente de campo del número de punto flotante.

    otro ejemplo

    0000000000000000000000000000000000000101
    

    sería

    1.01 * 2^2
    

    si usted comienza con una de 32 bits con signo (no flotante) y quiero terminar con una de 32 bits número de punto flotante, obviamente, no puede retener todos los detalles de ese número, ya que el número de punto flotante necesita un bit de signo y un exponente así como la mantisa, la mantisa es de menos de 32 bits de modo de deshacerse de los bits menos significativos

    1000000000000000000000000000001  
    

    obtendrá cortado en algún punto:

    1.000000000000000 * 2^something
    

    OriginalEl autor old_timer

Dejar respuesta

Please enter your comment!
Please enter your name here