深度理解取余/取模运算
日常编程经常会接触到取余/取模运算,那么计算机中取余/取模运算究竟是怎么定义的?
P1:四种"取整"方式
数学取整
1.1 向0取整
parseInt() 注意接受参数是string;所以调用该方法时存在类型转换parseInt(3.141592654) // 3
1.2 向下取整
Math.floor() 不四舍五入Math.floor(1.5555) // 1
1.3 向上取整
Math.ceil() 向上取整Math.ceil(1.5555) // 2
Math.ceil(1.1555) // 2
1.4 四舍五入取整
Math.round() 四舍五入取整Math.round(1.5555) //2
Math.round(1.4999) //1
P2:用公式理解"取模"
取模概念
如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足
a = q*d + r 且 0 ≤ r < d
。其中,q 被称为商,r 被称为余数。
运算符之 --- 取余运算 %
P3:“取余”和“取模”一样吗?
取整
取余:尽可能让商,进行向0取整。
取模:尽可能让商,向-∞方向取整。
C中 % ,本质其实是取余。
Python中 % ,本质其实是取模。
理解链:
对任何一个大于0的数,对其进行0向取整和-∞取整,取整方向是一致的。故取模等价于取余
对任何一个小于0的数,对其进行0向取整和-∞取整,取整方向是相反的。故取模不等价于取余
同符号数据相除,得到的商,一定是正数(正数vs正整数),即大于0!故,在对其商进行取整的时候,取模等价于取余。
P4:总结
- 浮点数(或者整数相除),是有很多的取整方式的,0向取整、(正、负)无穷向取整、四舍五入取整…
- 如果 a 和 d 是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = q*d + r , q 为整数,且0 ≤ |r|< |d|。其中,q 被称为商,r 被称为余数
- 在不同语言,同一个计算表达式,“取模”结果是不同的。我们可以称之为分别叫做正余数 和 负余数
- 具体余数 r 的大小,本质是取决于商 q 的。而商,又取决于除法计算的时候,取整规则。
- 取余 vs 取模:取余是尽可能让商,进行向 0 取整。取模是尽可能让商,向 -∞ 方向取整。
- 参与取余的两个数据,如果同符号,取模等价于取余
- 如果参与取余的两个数据符号不同,在C语言中(或者其他采用向0取整的语言如:C++,Java),余数符号,与被除数相同。(因为采用的向0取整)
深度理解取余/取模运算相关推荐
- 取余,模运算,余数的正负问题,1497. 检查数组对是否可以被 k 整除
首先,我们来看数学中对余数的定义 0到除数之间的整数,所以当除数是负数的时候,余数也是负数. 举个例子: 接下来,我们看计算机中余数是怎么求的??? 所有的语言和计算器都遵循了让商靠近零的原则 在C+ ...
- 【C语言】深度理解 负数取余 取模
C语言深度理解 负数取余 取模 关于取余和取模的问题 定义 取余时有负数怎么计算? 取余和取模的区别 取余和取模时候等价什么时候不等价 总结 关于取余和取模的问题 许多小伙伴在刚开始学C语言的时候,知 ...
- C语言符号-取余\取模运算
目录 前言 取整 向0取整 向-∞取整 向+∞取整 四舍五入取整 汇总 取模\余 对于正数取模 对于负数取模 取余和取模的理解 前言 本文主要讲解并真正理解取余\取模运算是怎样的! 取整 首先取整有四 ...
- C语言中四种取整方式、取余/取模的运算以及负数取模的问题
零向取整.负无穷向取整.正无穷向取整.四舍五入取整 如果将一个浮点数赋值给整形,只会保存整数位: 这种取整方式为零向取整,C语言默认采用的是这种方式 C语言中也有对应的零向取整函数: 同理还有一种函数 ...
- C#练习——窗体实现简单计算器,完成加,减,乘,除,取余,简单运算
c# windows窗体练习:实现简单计算器,完成加,减,乘,除,取余,简单运算 //编写环境:vs2017 using System; using System.Collections.Generi ...
- python的取整和取余_python取余取整
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 取余的公式:余数=除数-被除数*商python的的余数是按照整除(向下取整)得到 ...
- Java 水仙花数(取余%取整/)
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身.例如:1^3 + 5^3+ 3^3 = 153. public class Flower {public static void ...
- 蓝桥杯算法训练之数对(取余取整)
问题描述 编写一个程序,该程序从用户读入一个整数,然后列出所有的数对,每个数对的乘积即为该数. 输入格式:输入只有一行,即一个整数. 输出格式:输出有若干行,每一行是一个乘法式子.(注意:运算符号与数 ...
- python基础知识之整除、取余、幂运算
数字和表达式 python解释器可以当作计算器使用 >>>2+2 4 整数除法 一个整数被另一个整数除,计算结果的小数部分被截去,只保留整数部分. 如果参与除法的两个数中有一个为浮点 ...
最新文章
- Java获取系统日期时间
- 使用通用SOP8转接板调试半桥驱动芯片
- 委托的Invoke 和 BeginInvoke 与Control的Invoke和BeginInvoke(转-因为写得很好)
- Session与Cookie
- python编程软件排行榜_Python编程开发工具:这10个对Web开发者最有用的Python包
- linux vi 上下左右 ab,【Linux】Ubuntu vi 上下左右变ABCD及 apt-get install报错问题解决方法...
- 关于js中replace()只能替换字符串中第一个对象的问题
- S3C6410和S5PV210的启动模式介绍
- 7-1 图深度优先遍历(c++)
- 干货-Google支付后台验证操作流程【业务后台-GP后台流程】
- IT 行业平均薪资第一
- 用友文件服务器不存在,用友T6软件备份提示超时已过期,错误'53'文件不存在
- springboot添加切面
- 学习笔记:网络层,IP包头,路由器配置
- matlab实验:实验3MATLAB程序控制流程
- Java单元测试典型案例集锦
- Aria2Android 免root,Linux Bash脚本:在本地机上部署用户自用aria2服务
- HTTP Status 404 - Not Found的一种情况
- Python网络爬虫(八)根据api判断法定节假日
- 全国计算机等第良好,第56次全国计算机等级考试(国考)通过考生名单