Want to create interactive content? It’s easy in Genially!

Get started free

Programacion 2

Fernanda García

Created on November 22, 2023

Start designing with a free template

Discover more than 1500 professional designs like these:

Psychedelic Presentation

Chalkboard Presentation

Witchcraft Presentation

Sketchbook Presentation

Genial Storytale Presentation

Vaporwave presentation

Animated Sketch Presentation

Transcript

Representación de números reales

PROGRAMACIÓN 2 Maria Fernanda García Villavicencio Jabnia Madai Espinosa Martínez

EMPEZAR

Contenido

  • Notación científica
    • Mantisa
    • Exponente
    • Normalización
  • Estándar IEEE754

Notación científica

Dada la naturaleza de los números reales, se han buscado maneras de representarlos de tal modo que sean más "manipulables".De ahí nace la notación científica.

Ejemplos:0.000 000 000 000 000 000 000 000 000 000 911 = 9.11 × 10^8 299700000 = 2.997e8

Notación científica

9.11 × 10^8

Exponente

Mantisa

Mantisa

Aunque el término mantisa es usado originalmente para referirse a la parte decimal o fraccionaria del logaritmo, en este contexto se le da este nombre a la parte significativa del número real (significando).

Mantisa < 0

Significa que el número real es menor que cero

Exponente

Indica el orden de magnitud del número determinado, puede tener base 10 o base 2 ya sea que dicho número se exprese como decimal o binario. Se puede escribir junto con la base o bien, simplemente se separa de la mantisa con la letra "e".

Exponete < 0

Significa que el número real es menor que 1 y mayor que -1

Ejemplo decimal

Notación científica en Phyton

Mantisa y exponente en Phyton

Existe una función perteneciente a la biblioteca matemático de Phyton que calcula tanto la mantisa como el exponente de un número real (esta función devuelve un exponente para base 2)

Normalización

Se dice que un número real esta normalizado si tiene un solo dígito (distinto de cero) en la parte entera, es decir del lado izquierdo del punto decimal.

Donde d0, d1, d2, ... denotan los dígitos del número real en cuestion y d0 es distinto de cero.

Normalización en cualquier base

La misma definición funciona para cualquier base b, tendremos la forma:

Donde d0, d1, d2, ... denotan los dígitos del número en cuestion y d0 es distinto de cero.

Ejemplos

Decimal

Binario

IEEE 754 standard

Coma flotante (floating point)

La coma flotante, es una forma de notación científica usada internamente en las computadoras con la cual se pueden representar números reales.

El Estándar IEEE para Aritmética de Coma Flotante (IEEE 754) es un estándar técnico para el cálculo de coma flotante que fue establecido en 1985 por el Instituto de Ingenieria Eléctrica y Electrónica (IEEE).

¿De dónde surge esta idea?

32 bits (4 bytes)

¿Qué se puede almacenar con 32 bits?

Con 32 bits sin signo podemos representar enteros que van de 0 a

4,294,967,295

Más allá de 4 millones, realmente no hay forma de aplicar este entero a muchas situaciones. ¿Qué podemos representar con esto?

Idea 1: Añadir información pero perder precisión

Pero a su vez generemos un rango mayor de valores de números

¿Cómo es que la computadora puede reconocer que hay un punto ahí?

Recorramos el punto de acuerdo a una posión y digamosle a la computadora donde se encuentra.

Para este punto ya no estamos representando números con 32 bits, sino con 37.Así que ahora usemos los primeros 5 bits para indicar la posición del punto y los 27 restantes para representar al número en cuestión.

Ahora contamos con posiciones extra

Vayamos un poco lejos y usemos un byte para la posición del punto y tres bytes restantes para la mantisa. Con esto aumentamos el rango de números que queremos representar, pero perdemos presición

Problema 1.Representación de números negativos

Usemos un bit para representar el signo del número 1 si es negativo 0 si es positivo.

Problema 2.Redundancia

Podemos representar el mismo número haciendo coincidir a la mantisa con la posición del punto. Más aún, tenemos más de 500 formas de representar al cero que son totalmente innecesarias.La solución aquí es la notación científica.

Notación científica

Exponente en lugar de posición

Ahora los 8 bits que indicaban la posición del punto indicarán el exponente del número en notación científca. ¿Bajo qué rango?

Mantisa y normalización

Recordemos que en la normalización se busca el el primer dígito entero sea distinto de cero. Podria decirse que conseguremos que todos los números binarios comiencen en 1.

Todos los números en binario empiezan en 1

A excepción del 0.

Nos quedan dos problemas

Ya no tenemos forma de escribir el cero.

Los exponentes estan desbalanceados

Tenemos un valor que no podemos escribir y un valor extra que no sabemos que significa. ¿Por qué no hacer a ese exponente extra cero?

Nuevamente tenemos muchos posibles valores para cero. Pero no hay que desperdiciarlos, podemos usarlos en operaciones que impliquen números muy pequeños, conocidos como los números subnormales de este sistema.Esto es, cuando el exponente se encuentre en su minimo, la computadora lo interprete como -127. Y ahora el bit que lidera el número (establecimos que es 1) lo remplazamos por 0. Claro estos perderán presición a medida que tienden a cero.

Listo, hemos construido el estandar IEEE 754

Bueno... no totalmente

Un ultimo problema

Tenemos al cero y a los números subnormales para expresar números increiblemente pequeños ¿Qué hay para los números increiblemente grandes? ¿La computadora comprende el concepto de infinito?

Infinito

Not a number

Operaciones que parecen tener sentido en una computadora

Recordemos, cero es un número que es muy pequeño para ser representado e infinito es un número muy grande para ser representado.

Not a number

Operaciones inusuales

Not a number (NAN) nos da a entender que la respuesta a la operación efectuada no se encuentra en el rango de los números reales que estamos manejando. Un ejemplo de esto es multiplicar cero por infinito.

¡Muchas gracias!

https://lukaskollmer.de/ieee-754-visualizer/

Referencias

  • IEEE Computer Society (2008) IEEE Standard for Floating-Point Arithmetic (New York, NY) (Archivo pdf ) http://www.dsc.ufcg.edu.br/~cnum/modulos/Modulo2/IEEE754_2008.pdf
  • Canal Jan Misali (27 de mayo del 2022) How floating point works (Archivo de video) https://www.youtube.com/watch?v=dQhj5RGtag0
  • Matemáticas discretas. (2017) Capitulo 3: Punto Flotante https://medium.com/@matematicasdiscretaslibro/cap%C3%ADtulo-3-punto-flotante-c689043db98b
  • Amos D. (2020) Numbers in Python (Real Python) https://realpython.com/python-numbers/#floating-point-numbers
  • Tutorials Point (2021) Explain the IEEE Standar 754 Floating Point Numbers in computer achitecture. https://www.tutorialspoint.com/explain-the-ieee-standard-754-floating-point-numbers-in-computer-architecture#:~:text=IEEE%20developed%20the%20IEEE%20754%20floating-point%20standard.%20This,and%20hardware%20to%20be%20used%20to%20perform%20computations.