深度理解取整&取余&取模运算

在编程的学习当中,我们会经常行的使用这些操作在表达式计算,但是你在使用当中,你真的理解了吗???或者说是你完全学会使用了!!

在这篇博客当中,或许会出现错误,希望大家理解,目前还在学习当中,发现错误或不足之处请大家斧正!!

目录

一、取整

二、取余与取模


一、取整

先写一个简单的代码在引入:

C语言代码:在前面的代码中,我也解释过,为什么在定义变量中,int类型赋值浮点型不报错误,

在定义变量时,类型只是计算机用来判断内存开辟的空间大小,不会发生类型不匹配的原因,注意在取出数据的时候,如果不同类型之间的数据可能会发生数据截断,导致程序出错。

我们看出,不管是负数还是整数,它们的结果都不满足我们所认知的四舍五入,那么他的计算原理是什么??我选择的这俩组数据一负一整,我们可以发现整数在变小,负数在变大,

那么我们的结论就出现了:它们都在向0靠齐,C语言中使用的便是向0靠齐的计算原理

取整原理1:向0靠齐

 

取整原理2:向负无穷取整

 

 

取整原理3:向正无穷取整

 

取整原理4:四舍五入取整

小数位是<=4  舍去,小数位>=5加1

二、取余与取模

取模的定义:

如果ad是两个自然数,d非零,可以证明存在两个唯一的整数 q r,满足 a = q*d + r 0 ≤ r < d。其中,q 被称为商,r 被称为余数。

我们先写个例子:

C语言代码: 

Python代码:
这是在python3版本中的测试

 当除数与被除数都是正数时,它们的结果一致

我们在看一下出现负数的结果:我们可以发现在不同的编程语言中,负数的取模结果是不同的

C语言代码:

 

 python代码

 它们的结果出现不一样了,我们观察取模的定义:两个唯一的整数 q r,满足 a = q*d + r 0 ≤ r < d。其中,q 被称为商,r 被称为余数。

在这里,我们就会引入一种新的概念 ,  正余数  负于数

所以,-10通过加法获得  有俩中方法一种是从小于-10方向靠近,一种是从大于10的方向靠近,商一定是除数的倍数所以我们的选择有  -12   与  -9:

 



-10 = -12 + 2
-10 = -9 + -1 

这种现象出现的原因就是:在C语言中选取的负于数,在python中用的是正余数,从小于被除数方向与大于除数方向的选择

C语言中%的本质是取余(让商向0取整)

Python的%的本质是取模(让商向负无穷取整)

所以结论就是:

1.取余vs取模: 取余尽可能让商,进行向0取整。取模尽可能让商,向负无穷方向取整

2.参与取余的两个数据,如果同符号,取模等价于取余
3. 如果参与取余的两个数据符号不同,在 C 语言中 ( 或者其他采用向 0 取整的语言如: C++ Java) ,余数符号,与被 除数相同。(因为采用的向 0 取整)
4.浮点数 ( 或者整数相除 ) ,是有很多的取整方式的。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山山人行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值