【发布时间】:2020-05-19 20:41:12
【问题描述】:
根据编程语言的不同,模运算符的答案似乎有所不同。例如,c++、c 和 Java 对于像 -5%2 这样的表达式都返回 -1,而 python3.x 对于相同的计算输出 1。为什么会这样?
编辑:错误地写成了 -10%2 而不是 -5%2。
【问题讨论】:
-
在这个问题中,c 和 c++9 使用 printf("%d"),Java 使用 sout(),python 使用 print()
-
呃,所有语言都应该是 0
-
把问题放在一边:在 Python 中,结果的签名取决于第二个操作数的签名。
-
Java 中没有模运算符。它是一个余数运算符。仅此一项就足以回答您的问题。
-
“为什么会这样?” 因为 Python 的设计者决定不遵循 C 的先例,而 Java 的设计者决定保持先例(很多 Java 的特性,实际上)。