1

我计算 -15 mod 18,结果如下:
C: -15 % 18 = -15( http://codepad.org/DhzkZYHk )
Google: -15 mod 18 = 3(-15 mod 18输入谷歌的搜索框)

和 -9 mod 5 的结果:
C:-9 % 5 = -4
谷歌:-9 mod 5 =1

为什么这些不同?谷歌如何计算他们的mod?

4

2 回答 2

3

Google 的计算器将 -15 mod 18 作为

-15 = 18*(-1) + 3

余数为 3,而 C 将其评估为

-15 = 18*(0) - 15

因此表达式变为-15。

一般来说,

a = (a/b)*b + a%b

持有。

于 2013-05-05T16:35:02.973 回答
2

因为%Google 中的运算符是取模运算%符,而 C 中的运算符是余数运算符。

模数和余数运算符在负值方面有所不同。对于模运算符,结果的符号是除数的符号,而对于余数运算符,结果的符号是被除数的符号。

于 2013-05-05T16:17:39.943 回答