首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Modulus Divison是如何工作的

Modulus Divison是如何工作的
EN

Stack Overflow用户
提问于 2010-04-19 06:44:01
回答 19查看 320.8K关注 0票数 114

我真的不明白模除法是如何工作的。我一直在计算27 % 16,最后得到了11,我不明白为什么。

我似乎在网上找不到外行人的解释。有人能从很高的层面详细说明这里发生了什么吗?

EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2010-04-19 06:45:28

modulo division的结果是给定数字的integer division的余数。

这意味着:

代码语言:javascript
复制
27 / 16 = 1, remainder 11
=> 27 mod 16 = 11

其他示例:

代码语言:javascript
复制
30 / 3 = 10, remainder 0
=> 30 mod 3 = 0

35 / 3 = 11, remainder 2
=> 35 mod 3 = 2
票数 115
EN

Stack Overflow用户

发布于 2012-12-05 03:37:33

大多数解释都遗漏了一个重要的步骤,让我们用另一个例子来填补这个空白。

假设有以下情况:

代码语言:javascript
复制
Dividend: 16
Divisor: 6

模函数如下所示:

代码语言:javascript
复制
16 % 6 = 4

让我们来确定这是为什么。

首先,执行,这类似于正常除法,除了任意小数(也称为余数)被丢弃:

代码语言:javascript
复制
16 / 6 = 2

然后,将上述除法的结果(2)与除数(6)相乘:

代码语言:javascript
复制
2 * 6 = 12

最后,从被除数(16)中减去上述乘法的结果(12):

代码语言:javascript
复制
16 - 12 = 4

这个减法的结果,4,余数,就是我们上面的模数的相同结果!

票数 168
EN

Stack Overflow用户

发布于 2013-06-12 06:06:29

计算模量的简单公式是:

代码语言:javascript
复制
[Dividend-{(Dividend/Divisor)*Divisor}]

所以,27 % 16 :-

27- {(27/16)*16}

27-{1*16}

Answer= 11

便笺

所有的计算都是整数。如果是小数商,小数后面的部分将被忽略/截断。

例如: 27/16= 1.6875在上述公式中仅视为1。0.6875将被忽略。

计算机语言的编译器也以同样的方式处理带有小数部分的整数(通过在小数后截断)

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2664301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档