4

为什么模运算符在 C 和 Java 中不能按预期工作?

4

4 回答 4

5

维基百科有一个很好的表格,显示了各种语言的操作标志。在 Python 中它是除数 (26) 的符号,在 Java/C 中是被除数 (-1) 的符号。

于 2013-03-22T18:19:50.947 回答
3

Python 的 % 运算符计算数学余数,而不是模数。根据定义,余数是一个介于 0 和除数之间的数字,它不像模数那样取决于被除数的符号。

于 2013-03-22T18:17:13.533 回答
1

它按规定工作。

合同是这样的

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

并且整数除法向零截断。因此,如果股息为负,则余数为负。

于 2013-03-22T18:15:22.053 回答
0

不确定python但%java中的运算符返回除法后获得的余数。

-1%26

分解它:

            26)-1(0
                0
                ---
                -1 ---> Remainder as (-1+0=-1)
于 2013-03-22T18:15:14.270 回答