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

发布于 2021-01-29 15:08:40

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

在Python中:

-1 % 10

产生 9

在C中产生 -1

  1. 哪一个是正确的模?

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

关注者
0
被浏览
93
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    1. 两种变体都是正确的,但是在数学(尤其是数论)中,Python的模数是最常用的。
    2. 在C中,您确实((n % M) + M) % M获得了与Python中相同的结果。例如 ((-1 % 10) + 10) % 10。请注意,它仍然对正整数:((17 % 10) + 10) % 10 == 17 % 10和C实现的两个变体(正或负余数)仍然起作用。


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看