小编典典

C和Python-模(%)操作的不同行为

python

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

在Python中:

-1 % 10

产生 9

在C中产生 -1

  1. 哪一个是正确的模?

  2. 如何使C中的mod操作与Python中的一样?


阅读 234

收藏
2021-01-20

共1个答案

小编典典

  1. 两种变体都是正确的,但是在数学(尤其是数论)中,Python的模数是最常用的。
  2. 在C中,您确实((n % M) + M) % M获得了与Python中相同的结果。例如 ((-1 % 10) + 10) % 10。请注意,它仍然对正整数:((17 % 10) + 10) % 10 == 17 % 10和C实现的两个变体(正或负余数)仍然起作用。
2021-01-20