【发布时间】:2015-12-15 14:28:43
【问题描述】:
负数上的模运算符%在python和C中以不同的方式实现。在C中:
-4 % 3 = -1,而在 python 中:-4 % 3 = 2。
我知道如何在 C 中实现类 python 的模。我想知道如何做相反的事情,即:在 python 中轻松实现类 C 的模。
【问题讨论】:
-
根据 C 编译器、环境的不同,负模会得到不同的结果。
-
使用括号
- (4 % 3) -
这是旧的 div/mod rem/quot 辩论。 TL;DR:不同的处理器以不同的方式实现这一点,因此不同的语言允许不同的语义。
-
@BhargavRao 使用方括号
- (4 % 3)如果原始-4和3值是变量而不是硬编码的常量,则不适用。例如:int k = i % j,给定int i = -4和int j = 3。 -
@BhargavRao 操作员优先级是罪魁祸首。 :-) 不。这与运算符优先级无关。给定
int i = -4; int j = 3;,int k = i % j;中没有否定运算符