现在我不是在问除以零的数学答案,我想知道我的计算机在尝试除以零时的作用是什么?
根据我们看到的等级,我可以看到不同的答案? 看一个高级别我希望语言规范可能只是说“嘿,你不能这样做会引发错误”
查看汇编级别,当我们尝试除以0时,CPU是否会尝试调用除法指令?
如果这样做,我们将把我们带到机器代码级别。现在发生了什么?
既然如果没有发生并且我们强迫它发生,结果会是什么?
答案 0 :(得分:4)
我认为你问的是如果我们在分母中使用0进行二元除法算法会发生什么。
算法将进入无限循环,商将变得越来越大,直到耗尽所有可用内存。
答案 1 :(得分:2)
查看汇编级别,当我们尝试除以0时,CPU是否会尝试调用除法指令?
获取和解码Yep指令。那么会发生什么?除数被发现为零,过程停止做它正在做的事情。它抛出某种异常,管道(如果有的话)被刷新并且很可能控制跳转到某些预定义的错误处理代码 - 通常操作系统控制一个称为中断向量的机器级跳转表(或者这可能是一个单独的中断向量表)。
然而,有许多架构,错误处理等方面各不相同。英特尔x86至少遵循上述程序。
如果这样做,我们将把我们带到机器代码级别。现在发生了什么?
我不知道这意味着什么。从CPU的角度来看,它是所有机器代码级别。