为什么在Java和C中-1%26 = -1,为什么在Python中为25?

时间:2013-03-22 18:13:05

标签: java python c modulo

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

4 个答案:

答案 0 :(得分:5)

Wikipedia有一个很好的表格,可以显示各种语言的操作符号。在Python中,它是除数(26)的符号,在Java / C中是被除数的符号(-1)。

答案 1 :(得分:3)

Python的%-operator计算数学余数,而不是模数。根据定义,余数是0和除数之间的数字,它不依赖于被除数的符号,如模数。

答案 2 :(得分:1)

按规定工作。

合同就是那个

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

和整数除法截断为零。因此,如果使用负红利,您将获得负余额。

答案 3 :(得分:0)

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

-1%26

打破它:

            26)-1(0
                0
                ---
                -1 ---> Remainder as (-1+0=-1)