🤡博客主页:醉竺
🥰本文专栏:《C语言深度解剖》
😻欢迎关注:感谢大家的点赞评论+关注,祝您学有所成!
✨✨💜💛想要学习更多C语言深度解剖点击专栏链接查看💛💜✨✨
目录
1. 取整
1.1 默认向 0 取整
1.2 向负无穷方向取整
1.3 向正无穷方向取整
1.4 四舍五入
1.5 汇总例子
2. 取余和取模的区别
3. 同余(了解)
4.应用
1. 取整
step1:关于"取整"你得知道
首先谈谈关于数学取整的问题
1.1 默认向 0 取整
1.2 向负无穷方向取整
1.3 向正无穷方向取整
1.4 四舍五入
1.5 汇总例子
2. 取余和取模的区别
先引出一个数学定义:
如果 a 和 b 是两个自然数,b 非零,可以证明存在两个唯一的整数c 和 r,满足 a= c*b+r,c 为整数,且0 ≤ |rl < |b|。其中,c被称为商,r被称为余数。
对于整数,取余和取模的计算步骤是一样的(没说结果一样!)。对于整数a,b,若想求其余数和模,则有:
整数商: c = a / b
取余/取模:r = a - b * c
具体余数r的大小,本质是取决于商q的;而商,又取决于除法计算的时候,取整规则。
取余和取模的区别在于整数商的计算方式不同 :
- 取余 尽可能让商,进行向0取整。(靠近0原则)。
- 取模 尽可能让商,向-♾️方向取整。(商值小原则)
- 当两个数的符号相同,即同为负或者同为正时,取余和取模结果相同。
- 符号不同时,取余结果的符号和被除数一致,取模结果的符号和除数一致。
C语言和Java中的 % 运算符是取余运算符;Python中的 % 运算符是取模运算符。
例子
以 5 与 3 之间运算举例:
取余
取模
简述 | 商值 | 计算过程 | 取模值 |
---|---|---|---|
5 mod 3 = 2 | 5/3 = 1.66 商取小原则 商=1 | 5 - 3 * 1 = 2 | 2 |
-5 mod 3 = 1 | -5/3 = -1.66 商取小原则 商=-2 | -5 - (3 * -2) = 1 | 1 |
5 mod -3 = -1 | 5/-3 = -1.66 商取小原则 商=-2 | 5 - (-3 * -2) = -1 | -1 |
-5 mod -3 = -2 | -5/-3 = 1.66 商取小原则 商=1 | -5 - (-3 * 1) = 2 | -2 |
深入理解
在 12 模的时钟中;假设当前时针指向 6 点,而准确时间是 2 点,调整时间最少有以下两种拨法
倒拨4小时:6-4=2 |
---|
正拨8小时:(6+8) mod 12=2 |
除此之外,还有 正拨 8 +12 小时等,(6+20) mod 12 = 2;
mod 为取模,在正整数中等于取余数。
即上面结果表明,正拨(加法)的结果可以用倒拨(减法)来替代!
而对于如何用一个正数来替代一个负数(减法可以看到加一个负数),数学上有一个概念叫做同余。
3. 同余(了解)
两个整数 a,b,若他们的除以整数 m 所得的余数相等,则称 a,b 对于模 m 同余。记作 a ≡ b (mod m),读作 a 与 b 关于模 m 同余。
举例:
2 mod 12 = 2
14 mod 12 = 2
26 mod 12 = 2
所以,2、14、26 关于模 12 同余。
4.应用
取模的本质是:取模的值,必定在模的范围内;所以,计算机领域引用该特性,使元素路由算法不超出边界,并有规则存放。
首先确定模(范围);元素取模,使元素有规则的落入模的范围内容器中。即余数的范围小于除数的值。
参考文章:
取模与取余