Java 中的模数

Rupam Yadav 2023年10月12日
  1. Java 中使用 Math.floorMod() 计算两个数的模数
  2. Java 中使用%运算符计算两个数的模数
Java 中的模数

取模或取模运算符返回除法后两个整数的余数。它用于简单的任务,例如确定数字是否为偶数,以及更复杂的任务,例如跟踪圆形阵列中的下一个写入位置。

Java 中使用 Math.floorMod() 计算两个数的模数

Math.floorMod(a,b) 函数接受两个可以是 int 或 long 类型的参数。在函数中,a 是被除数,而 b 是除数。它返回传递给函数的两个参数的下限模数。say ab 的 mod 将产生大于或等于 0 且小于 b 的结果。

在下面给出的代码中,变量 num1 可以被 num2 整除;因此余数为 0。对于第二种情况,我们有相同符号的 num3num4,并且仅给出相同符号的余数。

但是,如果我们考虑被除数 num5 为正而除数 num6 为负的第三种情况,余数将带有除数的符号。同样,在最后一种情况下,num7 仍然是负数;结果只带有正除数的符号。

import java.lang.Math;

public class Main {
  public static void main(String[] args) {
    int num1 = 20, num2 = 4;
    System.out.println(Math.floorMod(num1, num2));

    int num3 = 113, num4 = 30;
    System.out.println(Math.floorMod(num3, num4));

    int num5 = 113, num6 = -30;
    System.out.println(Math.floorMod(num5, num6));

    int num7 = -113, num8 = 30;
    System.out.println(Math.floorMod(num7, num8));
  }
}

输出:

0
23
-7
7

Java 中使用%运算符计算两个数的模数

余数%运算符也用于余数运算。模数和余数之间存在细微差别。如上所述,a 和 b 的模的结果总是大于或等于 0,并且小于 b(除数)。

如果我们参考下面使用 num1 % num2 给出的示例,我们将确定 num1 是偶数还是奇数。如果 num1 % num2 的余数等于 0,则该数字为偶数,否则为奇数。在 % 运算中,结果带有被除数的符号,如果我们取 num3 % num2,这是可见的。等式 -23 % 2 等于 -1,因此是红利的符号。

同样,如果被除数为正,则所得余数为正。例如 num1 % num4 结果为正余数。等式 17 % -3 等于 2。

public class ModTest {
  public static void main(String args[]) {
    int num1 = 17;
    int num2 = 2;

    boolean result = false;

    if (result = (num1 % num2) == 0) {
      System.out.println("Number " + num1 + " is even");
    } else {
      System.out.println("Number " + num1 + " is odd");
    }

    int num3 = -23;
    int num4 = -3;
    System.out.println("Remainder1: " + num3 % num2);
    System.out.println("Remainder2: " + num1 % num4);
  }
}

输出:

Number 17 is odd
Remainder1: -1
Remainder2: 2
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相关文章 - Java Math