¿Pueden todos estos números: -5, 2015.125, 4 ^ 100, 128 ^ -3 representados exactamente en una máquina de doble precisión? ¿Por qué y por qué no?

Probablemente esté hablando del formato de punto flotante de precisión doble IEEE 754 base 2: binary64, un estándar que se ha utilizado en muchas computadoras e idiomas. Todos los formatos de coma flotante IEEE incluyen los valores especiales + ∞, −∞ y NaN (no es un número).

Imagen del artículo de Wikipedia IEEE 754 de doble precisión

El signo del número se almacena como un solo bit, por lo que si un número como –5 se representa exactamente depende solo de su valor absoluto 5. Los números distintos de cero como 5 se representan en la base 2, entonces 5 es 101, luego se escala a un número entre 1 y 2 veces una potencia de 2, entonces 5 es [matemática] 1.01 \ cdot2 ^ 2 [/ matemática] Luego se almacenan los dígitos .01 después del punto decimal y se almacena el exponente 2 (como un número binario). Entonces 5 y –5 se representan exactamente.

Como 2015.125 es 11111011111.001 en la base 2, también se puede representar exactamente, y también [math] 128 ^ {- 3} [/ math] ya que también tiene una representación binaria finita.

[matemáticas] 4 ^ {100} = 2 ^ {200} [/ matemáticas] también puede. Tiene un gran exponente de 200, pero eso no es demasiado grande ya que se utilizan 11 bits para almacenar el exponente (incluido su signo).

Entonces, todos esos números se pueden representar exactamente.

Solo las fracciones cuyos denominadores son potencias de 2 pueden representarse exactamente, por lo que 1/3 y 1/10 solo tienen representaciones aproximadas.

Quizás la pregunta pretendía preguntar si los equivalentes decimales se pueden expresar exactamente en coma flotante de doble precisión.
Punto flotante

  • Doble precisión, generalmente utilizada para representar el tipo “doble” en la familia de lenguaje C (aunque esto no está garantizado). Este es un formato binario que ocupa 64 bits (8 bytes) y su significado tiene una precisión de 53 bits (aproximadamente 16 dígitos decimales).

En ese caso, todos los números excepto 4 ^ 100 podrían expresarse.
4 ^ 100 = 1.6069380442589902755419620923411626025222029937827928353… × 10 ^ 60
Esto requiere mucho más de 16 dígitos decimales.
En hexadecimal, dará como resultado un desbordamiento en la precisión de 32 bits, pero puede expresarse como un número de precisión doble IEEE
4 ^ 100 – Wolfram | Alpha

El | valor hexadecimal
entero de 16 bits sin signo | 0000 (desbordamiento: truncado a 16 bits)
entero de 32 bits sin signo | 00000000 (desbordamiento: truncado a 32 bits)
IEEE número de doble precisión | 000000000000704c (suponiendo el pedido de bytes little-endian)

IEEE número de doble precisión | 4c70000000000000 (suponiendo el pedido de bytes big-endian)

David Joyce tiene la respuesta para usted, pero tengo que decir que si se trata de una tarea, está haciendo la pregunta equivocada. No tiene ningún sentido saber qué valores particulares se representan exactamente como números de coma flotante de precisión doble.

More Interesting

¿Volver a la Universidad para estudiar Matemáticas me ayudará a comprender completamente la lógica del algoritmo de la IA y la Programación Funcional?

¿Qué es Automata y por qué se necesita en la progresión de la informática?

¿Alguien ha explorado el uso de autómatas celulares 2D en una superficie esférica sintonizada para proyectar un universo 3D dentro que simule la gravedad?

¿Será difícil ingresar a una escuela de posgrado en astronomía de un entorno no tradicional (especializaciones diferentes a astronomía, física, matemáticas, CS, etc.)?

¿Cuáles son los problemas en informática para los cuales se conoce con certeza la mejor complejidad computacional absoluta?

Soy un programador con un poco de experiencia en matemáticas (después de la secundaria). ¿El curso de matemáticas de Khan Academy es suficiente para sumergirse en el aprendizaje automático / big data?

¿Cómo programar gráficos matemáticos con python? ¿Hay algún paquete que los incluya?

En términos simples, ¿qué quieres decir con enmarcar bits?

¿Cuáles son algunas de las áreas en ciencias de la computación que involucran una buena cantidad de matemáticas y también tienen aplicaciones industriales?

Cómo resolver esta serie retorcida de Fibonacci

¿Qué haría como programador (específicamente un ingeniero de software) que implicaría un conocimiento matemático sólido?

Como estudiante de matemáticas, ¿cuáles son las clases más importantes que podría tomar en informática?

¿Se utiliza la teoría de grupos en la IA?

¿Se pueden replicar completamente todas las funciones matemáticas utilizando una secuencia de operadores '+', '-', 'x', '/' (como puede y para la potencia x)?

¿Cuál es una buena manera de aprender y comprender la escritura dependiente en un idioma como Idris / Coq / Agda?