Depende del idioma, del compilador, de si está utilizando números enteros o de coma flotante, etc.
Para el número de punto flotante, la mayoría de las implementaciones utilizan el estándar IEEE 754 , donde la división por 0 está bien definida. 0/0 da un resultado bien definido de NaN (no es un número) y x / 0 para x ≠ 0 da + Infinito o -Infinito, dependiendo del signo de x.
En lenguajes como C, C ++, etc. la división por cero invoca un comportamiento indefinido. Entonces, de acuerdo con la definición del idioma, cualquier cosa puede suceder. Especialmente cosas que no quieres que sucedan. Al igual que todo, funciona perfectamente bien cuando escribe el código y destruye datos cuando el cliente lo usa. Entonces, desde el punto de vista del idioma, no hagas esto . Algunos idiomas garantizan que su aplicación se bloqueará; Depende de ellos cómo se implementa esto. Para esos idiomas, la división por cero se estrellará.
Muchos procesadores tienen algún tipo de instrucción integrada de "dividir", que se comportará de manera diferente dependiendo del procesador. En los procesadores Intel de 32 bits y 64 bits, las instrucciones de "división" bloquearán su aplicación cuando intente dividir por cero. Otros procesadores pueden comportarse de manera diferente.
Si un compilador detecta que ocurrirá una división por cero cuando ejecute algún código, y el compilador es bueno para sus usuarios, es probable que le dé una advertencia y genere una instrucción integrada de "división" para que El comportamiento es el mismo.