所以,我知道小梅提供了两个余数运营商,rem和mod,但究竟什么是它们之间的区别?我能够找到这个,但我不确定我是否完全掌握了这一点.
两者之间没有区别A mod B,A rem Bif A是非负的并且B是正面的.如果A是负数并且B是正数,则为mod您提供真正的数学模运算; 因此,例如,如果B为5,这里有结果A mod 5和A rem 5为值A:
A = -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8
A mod 5 = 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3
A rem 5 = 0 -4 -3 -2 -1 0 -4 -3 -2 -1 0 1 2 3 4 0 1 2 3
Run Code Online (Sandbox Code Playgroud)
注意A mod 5结果中的模式.
rem对应于%操作符在C风格语言中的工作方式(但显然不是Python或Ruby).某些处理器可能会更快.如果你必须处理负值A,我的预感mod更有可能是有用的,但也可能有一些用途rem.我认为根本不使用mod或rem使用负右侧操作数,所以我不会过多担心定义.
另见http://en.wikipedia.org/wiki/Modulo_operation.