python - C 和 Python - 模 (%) 运算的不同行为

标签 python c math modulo

我发现相同的 mod 操作会根据所使用的语言产生不同的结果。

在 Python 中:

-1 % 10

产生9

在 C 中它产生 -1 !

  1. 哪个是正确的模数?
  2. 如何让 C 中的 mod 操作和 Python 中的一样?

最佳答案

  1. 两种变体都是正确的,但是在数学(尤其是数论)中,Python 的 modulo是最常用的。
  2. 在 C 中,您执行 ((n % M) + M) % M 以获得与 Python 中相同的结果。例如。 ((-1 % 10) + 10) % 10。请注意,它仍然适用于正整数:((17 % 10) + 10) % 10 == 17 % 10,以及 C 实现的两种变体(正余数或负余数)。

关于python - C 和 Python - 模 (%) 运算的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1907565/

相关文章:

python - 提取属于一天的数据值并计算每天的平均值

vb.net - 我如何将大量表格数据拆分成较小的相关表格? (不是数据库问题)

python - AttributeError : 'NoneType' object has no attribute 'groups' - re. 搜索

python pandas 日期 read_table

C - 本地线程变量是共享的

c - 连接字符串中的偶数和奇数位

c - strlen 对字符串指针的计算不正确?

java - 确定等距游戏和不规则形状的绘制顺序 (Java)

c - 为什么 fmax(a, b) 返回较小的(负)零以及如何干净地解决它?

python - 根据最后 3 个字符对文本进行排序