5

考虑整数除法

a = bq + r

其中a、b、q、r分别为:被除数、除数、商和余数。特别是当 b = 0 时,没有唯一的 q 满足给定 a 的方程,因此在这种情况下商 q 应该是未定义的。

然而,在这种情况下确实存在唯一的r,即r = a。在商和余数总是一起定义的前提下,只要 q 未定义,就会得出 r 未定义,但在编程中,我们经常希望使用与除法无关的余数%运算/。我实际上遇到了我想要的情况if b == 0 then a else a % b end

是否存在/是否存在任何编程语言中的运算符,当除数为 0 时,它与除数相同%但返回除数而不是零除法错误?

大多数(或所有)编程语言是否有任何理由返回零除法错误% 0

4

2 回答 2

2

在数学上,余数介于 0 和 b-1 之间,其中 b 是除数。因此,当 b = 0 时,r 是未定义的,因为它必须 >= 0。

于 2011-04-08T15:53:44.363 回答
2

是否有任何编程语言可以返回红利?没有把握。我从来没有遇到过。

是否有大多数人不返还股息的原因?的。模数是 CS 中的常见操作,因为它是 CPU 上整数除法的副产品。大多数(如果不是全部)汇编语言都有取模运算,并且此运算使用与除法运算完全相同的硬件。因此,如果您不能在硬件中除以零,那么您就不能在硬件中进行模数为零。

这是否意味着您不能拥有支持此功能的语言?不是真的,但是您必须将 if 语句添加到通常是单个指令的操作中。这可能会导致相当严重的性能损失,所以很少(如果有的话)这样做。

于 2011-04-08T15:54:19.833 回答