了解余数运算符

时间:2018-09-21 08:49:26

标签: operators modulo

只需执行一些基本的模运算,然后尝试用问号将我的头缠在下面的运算周围。

0%5 // 0 - Totally understand
1%5 // 1 ?
2%5 // 2 ?
3%5 // 3 ?
4%5 // 4 ?
5%5 // 0 - Totally understand

也许我在以错误的方式思考。例如1/5将返回0.2的Double而不是单个integer,那么它如何返回余下的1

我理解这些。这是有道理的,但以上我无法绕开我的头。

9%4   // 1
10%2  // 0
10%6  // 4

如果有人可以解释这一点,那就太好了。好像我正在放屁。 Source of learning

2 个答案:

答案 0 :(得分:1)

从您链接到的同一Basic Operators页上:

  

余数运算符(a % b)算出b内可以容纳a的多少倍,并返回剩余的值(称为余数)。

专门用于1 % 5

5不适合1,因此适合0次。

这意味着1可描述为

1 = (5 * multiplier) + remainder

由于乘数为0,所以remainder1

1 = (5 * 0) + remainder
1 = remainder

如果我们改为查看6 % 5,则其余部分也为1。这是因为5一次适合6

6 = (5 * multiplier) + remainder
6 = (5 * 1) + remainder
6-5 = remainder
1 = remainder

答案 1 :(得分:0)

/ 除法运算符,当您说help:effective-pom 时,如果除法是整数,则将得到1/5,但是当您进入0加倍,它将得到1.0/0.5

但是在说0.2时取模运算符,因为您有1%5 = 1,这意味着1的数字为1 = 0*5 + 1且提示为{{ 1}}