• ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

Problema complicado "Binarios, coma flotante y la IEEE748"

mc_migue

Nuevo
Registrado
30 Sep 2015
Mensajes
3
Puntos
0
Edad
32
Hola, cuando hablo de problema no hablo sobre una operación matemática... o tal vez si...
Verán, en clases me han pedido que explique porqué cuando hacemos la coma flotante, en el paso del exponente, tenemos que elegir si usamos 2^(n-1)= 128 o por lo contrario, 2^(n-1)-1=127, el caso es que el profesor no quiere que averigüe el nº, sino que explique el porque el puso 2^(n-1)=127, el problema es que empezó a liarnos tanto que acabé hecho un fiasco, y encima luego dijo que si conseguiamos explicarselo nos sumaría 1 punto a la nota final, he leido cientos de artículos pero ninguno me ha ayudado, eso si, ya voy dos temas por delante de mi clase mínimo, jajaja, alfinal no voy a necesitar ese +1, pero me gustaría entenderlo, he buscado en inglés pero usan términos muy complejos para mi vocabulario.

Agradecería si alguien es capaz de explicarme por qué usar el 127 o el 128 y no viceversa porque yo no veo un motivo, no sé si da igual siempre y cuando tengamos en cuenta que si cogemos el 127 podremos coger desde el -127 hasta el +128 y si cogemos el 128 podremos representar desde el -128 hasta el +127, esto es muy importante para mi, espero por favor que si alguien no está seguro del todo de su respuesta ponga en su mensaje "Esto es lo que yo creo" o algo similar, gracias.

Perdón por el título es 754 ^^
 
Última edición:
Con 2^7 puedes representar 128 "cosas". Si hablamos de numeros, podriamos representar del 0 al 127 o del 1 al 128.

Si tb son negativos, con 2^8 podemos representar 256 "cosas". Sobre lo anterior, del 0 al 255 o del -128 al +127 o del -127 al +128 (al incluir el 0)

Ahí está la explicación, pero no termino de entender tu pregunta jejeje
 
Lo primero muchas gracias por tu respuesta.
Mi pregunta es ¿Por qué deberiamos elegir la opción 2^(n-1) en vez de la opción 2^(n-1)-1 o viceversa, es que mi profesor es un poco cabrito y aveces incluso nos hace preguntas sin respuestas, llevo todo el dia liado con esto y tal vez ni tenga una respuesta real, jaja.

Por supuesto en todo momento estamos hablando de coma flotante, lo que nos lleva al ieee 754.
 
Última edición:
EDITO: 128 significa que si la mentisa es cero el valor es infinito y si no es cero es un valor invalido.

Sent from my Nexus 4 using Tapatalk
 
Última edición:
Lo primero muchas gracias por tu respuesta.
Mi pregunta es ¿Por qué deberiamos elegir la opción 2^(n-1) en vez de la opción 2^(n-1)-1 o viceversa, es que mi profesor es un poco cabrito y aveces incluso nos hace preguntas sin respuestas, llevo todo el dia liado con esto y tal vez ni tenga una respuesta real, jaja.

Por supuesto en todo momento estamos hablando de coma flotante, lo que nos lleva al ieee 754.

Creo que la respuesta está en como se calcula de forma rápida el binario para pasarlo a decimal.
Con dos octetos obtienes hasta la posición 128=2^7.
Generalmente para pasarlo a decimal contarías desde el primer bit por la derecha hasta el último de la izquierda en 2⁰, 2¹, 2², etc con lo que te da el valor del bit, 1, 2, 4, 8
Para hacer un cálculo rápido, buscas la posición más avanzada, si tienes dos octetos usas 9 bits, marcas 256, le restas 1, te queda 255 y luego le restas los ceros que tenga, siempre i cuando el numero de ceros sea inferior al de unos.

Pero en coma flotante la cuenta es a la inversa. No hay que restarle -1, sino dejarlo en 2^-7, porque sigues usando el 0. Sino, ¿como representas 0,255 que es el valor más alto con 2 octetos?

Aunque no me hagas mucho caso, acabo de empezar el curso yo...
 
Agradezco todos los comentarios, por desgracia ayer no me acosté tan tarde (no sé si alguno no es de España) pero a la hora de las respuestas yo no podía debatir ya, muchas gracias de verdad, por si alguien quiere saberlo mi profesor me dijo ya hoy despues de darle un buen argumento que mi idea era buena pero el motivo por el que se hace de 127 es porque de esta forma tenemos un nº más positivo, y el cero es un nº positivo, así que realmente tenemos el mismo nº de dígitos para positivos que para negativos si no contaramos el cero.

La respuesta que le di yo fue la siguiente, le dije que se puso el 127 como norma porque de esta forma en digitos de 8 bits todos los positivos quedarían con un 0 delante incluyendo el cero que debería ser positivo, ya que 127=0 que en binario 127 es 01111111, como en signo magnitud todos los que tengan 0 delante son positivos pues es mejor crear un estandar o norma donde digamos que usaremos el 127, ya que todos los negativos quedarían con un 1 delante, por desgracia se supone que no fue el motivo inicial del porqué se tomo como referencia, en fin, muchas gracias de nuevo, de verdad.
 
Arriba