Jes*_* M. 14 java arithmetic-expressions modulo integer-division
如果这是一个简单的问题,我很抱歉,但是当第一个数字小于第二个数字时,我无法理解模数除法的概念.例如,当我的书中1%4表示余数为1.我不明白1是1%4的剩余部分
.1/4是0.25.我在考虑模数除法错误吗?
首先,在Java中,%是余数(非模数)运算符,它具有稍微不同的语义.也就是说,您需要考虑仅整数除法,就好像没有小数值一样.可以将其视为存储无法分割的项目:您可以将4个大小为4的项目存储在总容量为1的存储中.存储最大数量的项目后,您的剩余容量为1.同样,13%5是3,因为你可以在13号存储中装入2个5号的完整物品,剩下的容量是13 - 2*5 = 3.
我将在“Jean-Bernard Pellerin”已经说过的内容中添加一个更实际的例子。
如果将 1 除以 4 得到 0 是正确的,但是为什么当你做 1 % 4 时结果是 1?
基本上是因为这个:
n = a / b (integer), and
m = a % b = a - ( b * n )
Run Code Online (Sandbox Code Playgroud)
所以,
a b n = a/b b * n m = a%b
1 4 0 0 1
2 4 0 0 2
3 4 0 0 3
4 4 1 0 0
5 4 1 4 1
Run Code Online (Sandbox Code Playgroud)
结论:当 a < b 时,a % b 的结果将是“a”
| 归档时间: |
|
| 查看次数: |
9964 次 |
| 最近记录: |