Lo que voy a decirte es un secreto. Es algo que juré nunca revelar, pero supongo que ahora que has hecho la pregunta, es hora de revelarla.
La Segunda Guerra Mundial nunca sucedió. Fue una conspiración. ¿Crees que Japón se convirtió en una empresa de súper tecnología de la noche a la mañana?
A las 8:15 a.m., el 6 de agosto de 1945, Hiroshima Calculator Industries demostró el primer microcontrolador del mundo. Consumía 496 válvulas y era pequeña: cabía en un maletín. Para lograr este objetivo, tuvieron que cortar esquinas, y dejaron la verificación de límites de valores cero para el programador.
Fue un terrible error. Mientras demostraba este dispositivo, un programador dividió accidentalmente entre cero mientras confundía los números big-endian con los números complementados. El resultado final fue una explosión que destruyó Hiroshima y mató a miles de personas. No fue sino hasta una recreación en Nagasaki tres días después que la verdad se dio cuenta.
- ¿Es posible controlar el relé electromagnético a través de dos fuentes diferentes?
- ¿Qué efectos tienen la altura y el ancho en un transformador circular?
- ¿Por qué la ingeniería eléctrica es tan difícil y compleja?
- ¿Cuáles son las oportunidades de empleo después de sus estudios de posgrado en Ingeniería Eléctrica y Tecnología de la Información en ETH Zurich?
- ¿Cuál es el significado de ganancia y margen de fase?
Para encubrirlo, a las personas se les dijo que habían estado peleando una guerra durante cinco años y que era un arma secreta que causó la explosión. La mayoría lo creyó. Desde ese día, todos los microcontroladores han sido equipados con un control de límites que devuelve datos aleatorios si se intenta dividir por cero.
Si eso suena demasiado increíble para creer, bueno, eso es porque es ficción. Para que ocurra una explosión, debe haber algún tipo de reacción que haga que se acumule presión, pero lo que hay dentro de un microcontrolador es solo un montón de puertas electrónicas. Las operaciones de división se producen rápidamente y están limitadas por el número de puertas dentro de un procesador, por lo que no sucede mucho cuando intenta dividir por cero en un microcontrolador.
Sin embargo, los resultados suelen ser impredecibles. No se sabe qué resultado final quedará en los registros de salida, y esto puede hacer que los programas se vuelvan locos y hagan cosas impredecibles, o simplemente se bloqueen, por lo que generalmente se evita en lugar de depender de un resultado inesperado que no va a ser consistente incluso de procesador a procesador en la misma familia.
Por lo tanto, se debe evitar dividir por cero: no dañará la computadora en absoluto, pero las aplicaciones que usan esos datos pueden no funcionar correctamente.