Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java取余运算


在 Java 中,取余运算使用 % 操作符来执行。这个操作符返回一个数除以另一个数的余数。以下是几种实现方式,每种方式都包括步骤流程和示例代码。

使用%操作符进行取余运算

这是最常见的取余运算方式,使用内置的 % 操作符。

步骤流程:

使用%操作符,将左操作数除以右操作数,得到余数。

示例代码:

int dividend = 17;
int divisor = 5;
int remainder = dividend % divisor;
System.out.println("Remainder: " + remainder);  // 输出结果为 2

使用 Math.floorMod()方法进行取余运算

Math.floorMod(a, b) 方法返回与除法 a / b 的余数,与 % 操作符不同,这个方法的结果始终为正数。

步骤流程:

使用 Math.floorMod(a, b),其中 a 是被除数,b 是除数,得到正数余数。

示例代码:

int dividend = 17;
int divisor = 5;
int remainder = Math.floorMod(dividend, divisor);
System.out.println("Remainder: " + remainder);  // 输出结果为 2

使用位运算进行取余运算

这种方法只适用于除数为 2 的幂的情况。可以通过位运算实现更快速的取余运算。

步骤流程:

  1. 假设除数为 2 的幂,即 divisor = 2^n,首先获取 divisor 的二进制位数 n
  2. 将被除数右移 n 位(相当于除以 divisor )。
  3. 取右移后的结果的低 n 位(与 divisor - 1 进行按位与操作),即为余数。

示例代码:

int dividend = 17;
int divisor = 4;  // 2的幂次方

int bitPosition = 0;
int tempDivisor = divisor;
while (tempDivisor > 1) {
    tempDivisor >>= 1;
    bitPosition++;
}

int quotient = dividend >> bitPosition;
int remainder = quotient & (divisor - 1);
System.out.println("Remainder: " + remainder);  // 输出结果为 1

请注意,上述方法只适用于除数为 2 的幂的情况。

在以上方法中,第一种和第二种是最常见且通用的。如果需要更强大的数学操作,可以考虑使用 Apache Commons Math 或其他数学库,但通常情况下,内置的操作符和 Math 类提供的方法已经足够满足大多数需求。

如果要使用 Apache Commons Math 库,你需要添加以下依赖:

Maven 依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-math3</artifactId>
    <version>3.6.1</version>
</dependency>

Gradle 依赖:

implementation 'org.apache.commons:commons-math3:3.6.1'
###使用%运算符这是最常见的方式,使用`%`运算符来计算取余。示例代码:###依赖坐标如果你想使用第三方库来进行取余操作,这里是`comm ...
###方法一:使用取模运算符(%)这是最常见和基本的取余方法,通过使用取模运算符`%`来实现。###方法三:使用BigDecimal类如果需 ...
以下是几种常见的取余实现方式,包括使用内置运算符、使用标准库函数以及使用第三方库(如果需要的话)。###使用内置的%运算符这是最常见和简单的 ...
以下是两种不同的方法来实现浮点数的取余操作:###方法一:使用Math库的floorMod方法这种方法使用`Math.示例代码:依赖坐标:这 ...
###使用%运算符这是最常见和简单的方法,Java提供了`%`运算符来计算两个数的余数。###第三方库依赖对于上述实现方式,不需要额外的第三 ...