Ejercicio 1.a, Práctico 2

Ejercicio 1.a, Práctico 2

de Juan Pedro Maestrone Vazquez -
Número de respuestas: 4

Buenas noches.

Estuve intentando rato con este ejercicio y tengo varias dudas. Pero en sí me gustaría saber bien cómo se convierte un número representado en punto flotante a punto fijo, ya que es algo que no vimos en el teórico y la verdad no le estoy encontrando la vuelta (un ejemplo vendría bastante bien).

También me gustaría saber cómo sé cuál es el error existente al pasar de una conversión a otra.

Desde ya muchas gracias.

Saludos, Juan.

En respuesta a Juan Pedro Maestrone Vazquez

Re: Ejercicio 1.a, Práctico 2

de Manuel Urquiola -

Buenas!

La idea del ejercicio es que debas hacer la interpretación del número en punto flotante, podrías por ejemplo pasarlo a decimal o si te es más intuitivo, directo a punto fijo.

Ejemplos:

Número en punto flotante (1 bit de signo, 5 bits para el exponente y 10 bits para la mantisa ):  s=0, e=Eh, f=801h


-
Pasando por decimal en el medio: 

        Convierto el punto flotante a decimal: 

                - exp = 14 - 15 = -1

                - número en decimal: 2^(-1) + 2^(-2) + 2^(-11) = 0.75048828125 

      --> De aquí en adelante, resta un pasaje de decimal a punto fijo "clásico" donde el cálculo de error es el ya conocido. Dado que en decimal podría utilizar la cantidad de dígitos que quiera porque es una representación de pasada simplemente, no estoy introduciendo error en esta representación (siempre y cuando no haga redondeo!).


- Directo a punto fijo (1 byte parte entera en complemento a 2 y 1 byte parte fraccionaria.):

        - Conociendo que el exponente es -1, la representación en punto fijo es tomar la representación en punto flotante y reasignar posiciones.

       - En este caso, interpretando el número en punto flotante del ejemplo, tenemos que el mismo es: (1 , 1000 0000 01) * 2^(-1) 

       - De esto, pasar a punto fijo es desplazar hacia la derecha los dígitos una posición ( equivalente a multiplicar por 2^(-1) ) y quedarme con la cantidad de bits pedidos. De esto resulta: 0000 0000 , 1100 0000.
       Se pide la parte entera en complemento a 2, por lo que restaría hacer ese pasaje. (En este ejemplo la parte entera es cero, así que no agrega cambios.)

       - Por último para evaluar el error puede verse que hay dígitos distintos de '0' en la representación en punto flotante, que no entraron en la representación en punto fijo. De aquí se obtiene que el error cometido en el pasaje, será la suma de los dígitos que quedaron por fuera de la representación en punto fijo: 2^(-11).

Espero haya aclarado algo con el ejemplo!!

Cualquier consulta a las órdenes,
saludos,
Manuel

En respuesta a Manuel Urquiola

Re: Ejercicio 1.a, Práctico 2

de Juan Pedro Maestrone Vazquez -

Ayudó si, muchas gracias!

Otra consulta en cuanto al pasaje de punto fijo a punto flotante:

Si me dan la parte entera, y la misma comienza por 1, la tomo ya en complemento a 2 o debo hacer dicha conversión?

En respuesta a Juan Pedro Maestrone Vazquez

Re: Ejercicio 1.a, Práctico 2

de Manuel Urquiola -
No estoy 100% seguro de haber entendido la duda, pero hago alguna aclaración que me parece que puede ayudar:

La representación en complemento a 2 es una forma de representar enteros, y punto flotante es otra distinta. Cada uno tiene su forma de representar un mismo entero.

Dicho esto, lo que corresponde es que interpretes cuál es el entero representado en punto fijo y ese entero es el que piden que representes en punto flotante.

Si no resuelve la duda consulta con algún detalle más de la duda sin problema!

Manuel 
En respuesta a Juan Pedro Maestrone Vazquez

Re: Ejercicio 1.a, Práctico 2

de Manuel Urquiola -
Complemento mi respuesta ya que quedo un poco confusa.

En el caso en que te brindan un número en punto fijo con su parte entera en en complemento a 2, primero tenés que mirar el signo. Si es positivo (primer bit 0) podés realizar la conversión directamente. Si es negativo (primer bit 1) primero obtenés el complemento a 2 de la parte entera (lo pasas a positivo) y luego podés realizar la conversión a punto flotante.


Otra posibilidad es que te brinden un número en punto fijo con su parte entera en magnitud y signo. En ese caso simplemente descartás el primer bit y lo utilizas para determinar el signo del número luego de convertirlo a punto flotante.


Para realizar la conversión a punto flotante podés pasar el número en punto fijo a representación decimal o convertirlo directamente.


Espero que haya aclarado mi anterior respuesta!

Saludos,
Manuel