gpt4 book ai didi

java - 大的负模给出错误的结果

转载 作者:行者123 更新时间:2023-12-01 16:44:00 30 4
gpt4 key购买 nike

我有一段代码可以对两个长数字进行取模。其中一个多头是负数,另一个则不是。给定 a = -5865797 和 b = 979667766,答案应该是 973801969。但它的结果是 -5865797,与变量 a 相同。不确定为什么会发生这种情况。

long a = -5865797;
long b = 979667766;

result = a % b;
System.out.println(result);

最佳答案

假设你有 3,你想把它除以 2。3 除以 2 的整数除法是 1。但是你无法进行干净的除法,所以有一个“剩余”,也称为除法的余数。模运算返回余数。

如果您现在尝试将 2 除以 3,则每部分将少于一个元素,这意味着 3 除以 2 的整数除法为 0,余数为 2。

您可以将其视为规则:每当您尝试将数字“a”除以大于“a”的数字“b”时,整数除法将是“0”,余数将是“a” 。这意味着如果你用“b”对“a”取模,你总是会得到“a”,这就是你的情况发生的情况。

关于不同的编程语言如何处理负操作数的信号,请查看下面的页面

https://en.wikipedia.org/wiki/Modulo_operation#In_programming_languages

顺便说一句,973801969 是 a + b (-5865797 + 979667766) 的结果。

关于java - 大的负模给出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61812309/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com