栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

目录

一、取整

二、取余与取模


一、取整

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

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

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

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

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

取整原理1:向0靠齐

 

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

 

 

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

 

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

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

二、取余与取模

取模的定义:

如果a和d是两个自然数,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.浮点数 ( 或者整数相除 ) ,是有很多的取整方式的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/769495.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号