Dipende dalla lingua, dal compilatore, dal fatto che tu stia usando numeri interi o numeri in virgola mobile e così via.
Per il numero in virgola mobile, la maggior parte delle implementazioni utilizza lo standard IEEE 754 , in cui la divisione per 0 è ben definita. 0/0 dà un risultato ben definito di NaN (non-un-numero), e x / 0 per x ≠ 0 dà + Infinity o -Infinity, a seconda del segno di x.
In lingue come C, C ++ ecc. la divisione per zero richiama il comportamento non definito. Quindi, secondo la definizione del linguaggio, può accadere qualsiasi cosa . Soprattutto cose che non vuoi che succedano. Come tutto funziona perfettamente bene quando scrivi il codice e distruggendo i dati quando il tuo cliente lo usa. Quindi dal punto di vista della lingua, non farlo . Alcune lingue garantiscono che la tua applicazione andrà in crash; tocca a loro come viene implementato. Per quelle lingue, la divisione per zero si bloccherà.
Molti processori hanno una sorta di istruzione "divide" incorporata, che si comporta in modo diverso a seconda del processore. Nei processori Intel a 32 bit e 64 bit, le istruzioni "divide" provocano il crash dell'applicazione quando si tenta di dividere per zero. Altri processori potrebbero comportarsi diversamente.
Se un compilatore rileva che una divisione per zero si verifica quando si esegue un codice, e il compilatore è bello per i suoi utenti, probabilmente vi darà un avvertimento e genererà un'istruzione "divide" incorporata in modo che il comportamento è lo stesso.