java - 模数如何处理负整数?

标签 java math modulus

我正在运行一个 for 循环,在循环内我有以下内容:

for(int i = 0; i < 12; i = i + 2){
        System.out.println("i = " + i);
        System.out.print("3 - i % 3 (i is at " + i + ") = " + (3 - i % 3));
        System.out.println();
        System.out.println("3 - i (" + (i) + ") = " + (3 - i));
    }

我确实理解模数如何正常工作或处理正数,但我不明白它如何处理负整数? 谁能给我解释一下吗?

非常感谢。

最佳答案

a mod b 对于正整数 ab 的定义非常明确。如果 ab 为负怎么办?共有三个选项与该基本定义一致:

  1. a mod b 始终为正。
  2. a mod ba 具有相同的符号。
  3. a mod bb 具有相同的符号。

不同的语言会选择这三种选择之一。没有单一的正确答案。

关于java - 模数如何处理负整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22898215/

相关文章:

java - android(Java/XML) 代码中的注释会影响 APK 的大小吗?

python - 在 python 条件语句中使用模数运算符

Java 多态性——根据子类型选择正确的方法

java - JPanel 已添加到切换按钮单击上的其他 Jpanel 上

math - 如何计算两个 3d 圆上的一对最近点?

javascript - HTML5 透视网格

将一个整数范围可逆地映射到另一个整数范围的算法?

c++ - 与 fmod() 结果比较返回 false

python - 如何读取然后拆分解析并写入文本文件?

java - 实现两个 HashMap