负数上的模运算符 %
在 python 和 C 中以不同的方式实现。在 C 中:
-4 % 3 = -1
,而在 python 中:-4 % 3 = 2
。
我知道如何在 C 中实现类似 python 的模。我想知道如何执行相反的操作,即:在 python 中轻松实现类似 C 的模。
最佳答案
easily implement a C-like modulo in python.
由于 C 在整数除法时会向零截断,因此余数的符号始终是第一个操作数的符号。有几种方法可以实现这一点;选择您喜欢的:
def mod(a, b): return abs(a)%abs(b)*(1,-1)[a<0]
def mod(a, b): return abs(a)%abs(b)*(1-2*(a<0))
关于python - 如何在python 2.7中轻松实现类似C的模(余数)运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34291760/