1 除以 x 时的余数运算符 java
Remainder operator java when dividing 1 by x
我在 Whosebug 上读到了这个:
模数 50 % 100
这样想:
100 变成 50 多少次?
零次。所以一定还剩下50个。因此,答案是50。
这对我来说是 understand/calculate 模数的最简单方法。但是,当我对 1 % 3 采用相同的方法时,出现了问题。 3进1多少次?零,所以一定还剩下 3 个?不,实际上它是 1,但为什么呢?这也是 2 % 11 的情况,可能还有许多其他情况,这是关于什么的?
除法算法:
r
定义为 a % b
.
"如果a和b是正整数,则存在唯一整数q,r
a = b*q + r 且 0 ≤ r < b."
1 = 3*0 + 1,所以答案是1。
(0 ≤ 1 < 3)
您可以将 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
3 进入 1 零次,剩下 1。不是 3.
注意 Java 中没有取模运算符。它被指定为余数运算符。这在某些情况下会影响结果的含义和值。
我在 Whosebug 上读到了这个:
模数 50 % 100
这样想:
100 变成 50 多少次?
零次。所以一定还剩下50个。因此,答案是50。
这对我来说是 understand/calculate 模数的最简单方法。但是,当我对 1 % 3 采用相同的方法时,出现了问题。 3进1多少次?零,所以一定还剩下 3 个?不,实际上它是 1,但为什么呢?这也是 2 % 11 的情况,可能还有许多其他情况,这是关于什么的?
除法算法:
r
定义为 a % b
.
"如果a和b是正整数,则存在唯一整数q,r a = b*q + r 且 0 ≤ r < b."
1 = 3*0 + 1,所以答案是1。
(0 ≤ 1 < 3)
您可以将 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
3 进入 1 零次,剩下 1。不是 3.
注意 Java 中没有取模运算符。它被指定为余数运算符。这在某些情况下会影响结果的含义和值。