我是 Java 新手,实际上是一般的编程。我知道模运算符 (%) 返回两个数字的余数,但是,我不明白为什么 17 % 40 = 17。
我知道 40 % 17 = 6、17 % 5 = 2 和 40 % 5 = 0。我得到了作为余数返回的值的要点。但是 17 % 40 = 17 让我很难过。
我能想到的唯一合理化是,由于余数小于 1,所以返回总值 17,为什么不是 0?请帮助向我解释这个谜。
除以 17/40 时,商为 0,余数为 17。
模运算符( )%
返回余数。
IE
a % b = remainder of a / b
Java 有一个你可能不熟悉的重要算术运算符,%,也称为模数或余数运算符。% 运算符返回两个数字的余数。例如 10 % 3 是 1,因为 10 除以 3 余数为 1。
因此,在您的情况下17/40
,余数为 17,因此结果为 17。
它与Like相同。
1%10 = 1
我想学习第三和第四标准数学是关键。
如果你看到(希望理解除法语法。它是流行的第三种标准方式)
____
40)17
你会得到一个提醒 17 因为 17 不能被 40 整除。然后会有一个 '.' 的加法。然后分数将被添加
如果您有数字a和b,它们的商q和余数r,那么以下必须为真:
q · b + r = a
也就是说,如果将商 ( q ) 乘以除数 ( b ) 并加上余数 ( r ),则结果是被除数 ( a )。
在你的情况下a = 17, b = 40, q = 0 所以r必须是17。
注意:上面的等式只是Nikolay Kuznetsov 答案的等式的重新排列,但我认为这样更容易理解。
也许这是一种不同的、更有帮助的思考方式。
当我们将除法应用于整数a
和时,b
我们实际上是在尝试像这样关联:a
b
a = Q * b + R
a
是 的一些倍数b
,加上一些剩余部分。Q
并且R
是整数;为了简单起见,我们也只考虑非负数。倍数 ,Q
是商,R
余数 , 是余数 - 使这种关系起作用的最小的。
在大多数语言中,a / b
给你Q
和a % b
给你R
。(事实上,处理器倾向于同时计算两者——它们是如此相关。)
所以如果a
是 17 和b
40,它只有在你写的时候才有效:
17 = 0 * 40 + 17
这就是为什么a % b
必须是 17 岁。
(请注意,在考虑负数时它会变得更加复杂。)