我在做模数错误吗?因为在 Java 中 -13 % 64
评估为 -13
但我想得到 51
。
原文由 Jakir00 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在做模数错误吗?因为在 Java 中 -13 % 64
评估为 -13
但我想得到 51
。
原文由 Jakir00 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于“数学上”两者都是正确的:
-13 % 64 = -13 (on modulus 64)
-13 % 64 = 51 (on modulus 64)
Java 语言开发人员必须选择其中一个选项,他们选择了:
结果的符号等于被除数的符号。
在 Java 规范中说:
https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.17.3
原文由 Caner 发布,翻译遵循 CC BY-SA 3.0 许可协议
8 回答6.4k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
负数模数的两种定义都在使用——一些语言使用一种定义,另一些语言使用另一种。
如果你想得到负输入的负数,那么你可以使用这个:
同样,如果您使用的语言在输入负数时返回负数,并且您更喜欢正数: