Java 求余
字数
359 字
阅读时间
2 分钟
1 %
& Math.floorMod
在 Java 中,%
运算符和 Math.floorMod
方法都可以用来进行模运算,但是它们处理负数的方式不同。(%
-> fix
=> 0
,Math.floorMod
=> -∞
)
%
运算符:这是 Java 中的取余运算符。当被除数和除数都是正数时,它的行为和我们通常理解的模运算是一样的。但是,当被除数是负数时,它的结果也会是负数。例如,-10 % 3
的结果是-1
。这是因为-10
除以3
的商是-3
,余数是-1
,所以-10 % 3
的结果是-1
。
java
int result = -10 % 3; // result 的值为 -1
Math.floorMod
方法:这是 Java 8 中新增的一个方法,它用来进行数学意义上的模运算。无论被除数是正数还是负数,它的结果都是正数。例如,Math.floorMod(-10, 3)
的结果是2
。这是因为-10
除以3
的商是-4
,余数是2
,所以Math.floorMod(-10, 3)
的结果是2
。
java
int result = Math.floorMod(-10, 3); // result 的值为 2
在凯撒密码的加密和解密过程中,我们需要进行循环偏移,这就需要用到模运算。当我们需要处理负数时,Math.floorMod
方法会比 %
运算符更加方便,因为它可以保证结果总是正数。