将1除以x时保留运算符java

时间:2015-03-24 04:40:35

标签: java math modulus

我已经阅读了stackoverflow:

模量50%100

以这种方式思考:

100进多少次50次?

零次。所以必须剩下50个。因此,答案是50。

这是我理解/计算模数的最简单方法。但是,当我对1%3采用相同的方法时,会出现问题。 3进1次多少次?零,所以必须剩下3个?实际上它不是1,但为什么呢?这也是2%11和其他许多人的情况,这是关于什么的?

3 个答案:

答案 0 :(得分:2)

除法算法:

r定义为a % b

“如果a和b是正整数,则存在唯一的整数q,r with a = b * q + r且0≤r<1。 B“。

1 = 3 * 0 + 1,所以答案是1.

(0≤1<3)

答案 1 :(得分:2)

3进入1次零次,剩下 1 。不是3。

注意 Java中没有模数运算符。它被指定为余数运算符。在几种情况下,这会影响结果的含义和价值。

答案 2 :(得分:0)

您可以将a % b视为a / b

的剩余部分
a % b = a - a / b * b;

1 % 3 = 1 - 1 / 3 * 3;
      = 1 - 0 * 3
      = 1

当你有-4%3

时会变得更有趣
-4 % 3 = -4 - -4 / 3 * 3
       = -4 - -3
       = -1