我真的不明白模除法是如何工作的。我一直在计算27 % 16,最后得到了11,我不明白为什么。
我似乎在网上找不到外行人的解释。有人能从很高的层面详细说明这里发生了什么吗?
发布于 2010-04-19 06:45:28
modulo division的结果是给定数字的integer division的余数。
这意味着:
27 / 16 = 1, remainder 11
=> 27 mod 16 = 11其他示例:
30 / 3 = 10, remainder 0
=> 30 mod 3 = 0
35 / 3 = 11, remainder 2
=> 35 mod 3 = 2发布于 2012-12-05 03:37:33
大多数解释都遗漏了一个重要的步骤,让我们用另一个例子来填补这个空白。
假设有以下情况:
Dividend: 16
Divisor: 6模函数如下所示:
16 % 6 = 4让我们来确定这是为什么。
首先,执行,这类似于正常除法,除了任意小数(也称为余数)被丢弃:
16 / 6 = 2然后,将上述除法的结果(2)与除数(6)相乘:
2 * 6 = 12最后,从被除数(16)中减去上述乘法的结果(12):
16 - 12 = 4这个减法的结果,4,余数,就是我们上面的模数的相同结果!
发布于 2013-06-12 06:06:29
计算模量的简单公式是:
[Dividend-{(Dividend/Divisor)*Divisor}]所以,27 % 16 :-
27- {(27/16)*16}
27-{1*16}
Answer= 11
便笺
所有的计算都是整数。如果是小数商,小数后面的部分将被忽略/截断。
例如: 27/16= 1.6875在上述公式中仅视为1。0.6875将被忽略。
计算机语言的编译器也以同样的方式处理带有小数部分的整数(通过在小数后截断)
https://stackoverflow.com/questions/2664301
复制相似问题