C语言取模运算(取余运算) 您所在的位置:网站首页 手提电子秤不准怎么调 C语言取模运算(取余运算)

C语言取模运算(取余运算)

2023-12-26 19:42| 来源: 网络整理| 查看: 265

C语言取模运算(取余运算) 取模算法:取余(取模)的奥义C语言运用

取模算法:

取模运算也叫取余运算,在C中用%来表示, 数学中叫mod。 x mod y = x%y x%y = x - y[x/y], for y!=0. 数学中的余数概念和我们的计算机中的余数概念一致,但实现却不一致。 其中 [x/y] 代表的是 x/y 的最小下界。 例: -3 mod 2 = -3 - 2*[-3/2] = -3 - 2*[-1.5] = -3 - 2*(-2) = -3 + 4 = 1 而我们的计算机是怎么做的呢: -3%2 = -3 - 2*(-3/2) = -3 - 2*(-1) = -3 - (-2) = -1 所以计算机中的取余实际上是: x%y = x - y(x/y), for y!=0. 这就是二者的区别。这个区别,对于正数,二者计算出的结果是相等的,但是负数就不相等了。这就意味着,如果以后在使用数学中余数相关定理的时候, 要注意计算机中余数的计算和数学定义不是完全一致的,所以在计算机上,对于负数,数学定理并不完全适用。当然,对于正数,二者是没有区别的。至于为什么计算机上要这么实现,我想恐怕还是历史原因,最早的计算机如果这样计算除法(取余是靠除法来完成的),那么就涉及到浮点数的计算以及取下界,这样,将比较大的降低效率,所以实现成了这样的方式,一直沿用至今。

取余(取模)的奥义

“/”在我们这些程序中代表整除,它符合除法法则,异号抵消。 再看看我们余数的定义: 整除“余”下的“数”。 则有:余数=被除数-商除数 商就是我们整除的结果。 看例子: eg1: (-6%5) = -6 - (-6/5)5 (-6%5) = -6 - (-1)5 (-6%5) = -6 - (-5) (-6%5) = -6+5 (-6%5) = -1 eg2: (5%-6) = 5 - (5/-6)(-6) (5%-6) = 5 - (0)(-6) (5%-6) = 5 - 0 (5%-6) = 5 eg3: (-5%-6)= -5 - (-5/-6)(-6) (-5%-6)= -5 - (0)(-6) (-5%-6)= -5 - 0 (-5%-6)= -5 eg4: (6%-5) = 6 - (6/-5)(-5) (6%-5) = 6 - (-1)*(-5) (6%-5) = 6 - 5 (6%-5) = 1

综上所述可以得出结论:被除数如果是负数,那么无论除数正负,结果都是负数。

C语言运用

除了上边的运算模式外取余还有其他的运用,由于能力有限在这只总结了其中一部分

1、任何数%2都可以检测是否为偶数,如果结果等于1则表示为奇数 示例: 100 % 2 = 0;101 % 2 = 1; 2、如果想要限制一个数的大小,除了用位与运算除外还可以用取余运算 示例: 100 % 5 = 0; 101 % 5 = 1;102 % 5 = 2; 103 % 5 = 3; 104 % 5 = 4; 105 % 5 = 0; … 示例代码: int main() { int i = 100, j = 5, k = 0; for (i; i



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有