Depende del idioma, del compilador, de si está usando números enteros o números de coma flotante, etc.
Para el número de coma flotante, la mayoría de las implementaciones usan el estándar IEEE 754 , donde la división por 0 está bien definida. 0/0 da un resultado bien definido de NaN (no 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, según la definición del lenguaje, 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 los datos cuando su cliente lo usa. Entonces, desde el punto de vista del lenguaje, 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 bloqueará.
Muchos procesadores tienen algún tipo de instrucción de "división" incorporada, que se comportará de manera diferente según el procesador. En los procesadores Intel de 32 bits y 64 bits, las instrucciones de "división" bloquean su aplicación cuando intenta dividir por cero. Otros procesadores pueden comportarse de manera diferente.
Si un compilador detecta que ocurrirá una división por cero cuando ejecuta algún código, y el compilador es bueno para sus usuarios, probablemente le dará una advertencia y generará una instrucción de "división" incorporada para que el comportamiento sea el mismo.