gpt4 book ai didi

java - 在 Java 和 C 中,负数 Mod 给出负结果

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

假设我有 (-5) mod 8

我用 Java 和 C 语言进行了尝试,当我期待 3 时,他们给了我一个 -5 结果。

为什么会发生这种情况?模数可以为负数吗?我应该改变什么才能得到正确的结果?

Java代码

public class Example {
public static void main(String[] args) {
int x;
x = -5%8;
System.out.println(x);
}
}

C代码

int main(){
int x;
x = -5%8;
printf("%d", x);
}

输出

Enter image description here

最佳答案

% 运算符被视为余数运算符,因此结果的符号与被除数的符号相同。

如果你想要一个模函数,你可以这样做:

int mod(int a, int b)
{
int ret = a % b;
if (ret < 0)
ret += b;
return ret;
}

关于java - 在 Java 和 C 中,负数 Mod 给出负结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43953268/

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