Autor Tema: Comparación de numeros en representación de punto flotante?

0 Usuarios y 1 Visitante están viendo este tema.

03 Mayo, 2025, 06:34 pm
Leído 2378 veces

Jambo

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 218
  • País: uy
  • Karma: +0/-0
  • Sexo: Femenino
Buenos días, como estan?

Estaba haciendo una evaluación que pide lo siguiente:

Citar
Describa el algoritmo para comparar dos números utilizando sus representaciones en Punto Flotante IEEE 754 (normalizados). Justifique el porqué de cada paso del algoritmo.

Y la respuesta es:

Citar
En primer lugar se comparan los signos del número. Si un número es positivo y el otro negativo ya se obtiene el resultado de la comparación.
Si los signos son iguales, se compara todo el resto de la tira utilizando un comparador de binario natural. Esto es válido porque el resto de la tira está formada por | exponente | mantisa , donde el exponente está representado en desplazamiento (el cual conserva el orden y por tanto es válido compararlos con un comparador binario). Finalmente, es correcto comparar las tiras enteras, porque por construcción de los números de punto flotante, la parte 1,F siempre es menor que 2. Por lo tanto cualquier diferencia en el exponente es mayor que la mayor diferencia posible entre las mantisas. Finalmente, si los exponentes son iguales, el resultado de la comparación estará guiada por el resultado de la comparación entre las mantisas, resultado ya provisto en la comparación binaria natural de la tira indicada.
Si los números son ambos positivos, el que tenga la tira | exponente | mantisa | mayor será el mayor, si son ambos negativos será el menor.

Nota: En esta respuesta se omiten los casos especiales donde los números sean infinito o NaN. Se asume que los números recibidos son normalizados, desnormalizados o cero.

No me queda muy claro de la respuesta si es lo mismo (en el caso de que el signo es igual en ambos numeros a comparar) comparar la tira exponente | mantisa como un todo o primero comparar los exponentes y en caso de que sean iguales comparar las mantisas. Se puede hacer lo que comento primero? Entiendo que lo segundo que planteo es correcto por lo que la solución dice: "Por lo tanto cualquier diferencia en el exponente es mayor que la mayor diferencia posible entre las mantisas."

Disculpen si la pregunta es algo tonta, pero la respuesta me entrevera un poco y queria una segunda opinion  ;D

Les agradezco de antemano.

Saludos!

03 Mayo, 2025, 09:28 pm
Respuesta #1

Richard R Richard

  • Ingeniero Industrial
  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 4,054
  • País: ar
  • Karma: +2/-0
  • Sexo: Masculino
  • Dentro de la ciencia todo,fuera de la ciencia nada
Entiendo que por rapidez , primero comparas lo mas corto, luego lo mas largo, primero  1 bit por el signo, luego el exponente y luego la mantisa , cada vez que tienes diferencia ya sabes que no se trata del mismo número.
Saludos  \(\mathbb {R}^3\)

03 Mayo, 2025, 10:00 pm
Respuesta #2

Jambo

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 218
  • País: uy
  • Karma: +0/-0
  • Sexo: Femenino
Hola

A que te referis cuando decis "luego la mantisa y luego el número"?

Además el algoritmo debería devolverme cual de los dos es mayor (no si son distintos).

Mi duda es si tiene sentido comparar la tira exponente | mantisa como un todo (la respuesta plantea por ejemplo "...el que tenga la tira | exponente | mantisa | mayor será el mayor, si son ambos negativos será el menor.")

04 Mayo, 2025, 03:29 am
Respuesta #3

Richard R Richard

  • Ingeniero Industrial
  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 4,054
  • País: ar
  • Karma: +2/-0
  • Sexo: Masculino
  • Dentro de la ciencia todo,fuera de la ciencia nada

Además el algoritmo debería devolverme cual de los dos es mayor (no si son distintos).

Entiendo que el algoritmo que te dice que son diferentes a la vez te puede indicar cual de los dos es mayor.
El valor absoluto de la mantisa no te dice cual de los dos es mayor o menor de los dos puesto que depende del signo de ambos números

1)comparas el signo de la mantisa , tienes tres casos
1.a) ambos positivos
1.b) ambos negativos
1.c) uno de cada signo , esto ya te dice que son diferentes y que el positivo es mayor que el negativo. te evitas de comparar el resto el número

2)comparas bits a bit el bloque exponente| mantisa en toda su longitud
si un bit es diferente ya no son iguales
si el signo es positivo primer bit es (1) cuando halles el primer bit diferente el que contenga el que sea mayor será el mayor de ambos números y detienes el ciclo de comparación
y si el signo es positivo primer bit es (0) cuando halles el primer bit diferente el que contenga el que sea mayor será el menor de ambos números.

En resumidas si la mantisa es negativa, todas las decisiones que tomes serán las opuesta al caso positivo.
Saludos  \(\mathbb {R}^3\)