Skip to content

Java 求余

字数
359 字
阅读时间
2 分钟

1 % & Math.floorMod

在 Java 中,% 运算符和 Math.floorMod 方法都可以用来进行模运算,但是它们处理负数的方式不同。(% -> fix => 0Math.floorMod => -∞

  1. % 运算符:这是 Java 中的取余运算符。当被除数和除数都是正数时,它的行为和我们通常理解的模运算是一样的。但是,当被除数是负数时,它的结果也会是负数。例如,-10 % 3 的结果是 -1。这是因为 -10 除以 3 的商是 -3,余数是 -1,所以 -10 % 3 的结果是 -1
java
int result = -10 % 3;  // result 的值为 -1
  1. Math.floorMod 方法:这是 Java 8 中新增的一个方法,它用来进行数学意义上的模运算。无论被除数是正数还是负数,它的结果都是正数。例如,Math.floorMod(-10, 3) 的结果是 2。这是因为 -10 除以 3 的商是 -4,余数是 2,所以 Math.floorMod(-10, 3) 的结果是 2
java
int result = Math.floorMod(-103);  // result 的值为 2

在凯撒密码的加密和解密过程中,我们需要进行循环偏移,这就需要用到模运算。当我们需要处理负数时,Math.floorMod 方法会比 % 运算符更加方便,因为它可以保证结果总是正数。