日常编程经常会接触到取余/取模运算,那么计算机中取余/取模运算究竟是怎么定义的?

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取整)

深度理解取余/取模运算相关推荐

  1. 取余,模运算,余数的正负问题,1497. 检查数组对是否可以被 k 整除

    首先,我们来看数学中对余数的定义 0到除数之间的整数,所以当除数是负数的时候,余数也是负数. 举个例子: 接下来,我们看计算机中余数是怎么求的??? 所有的语言和计算器都遵循了让商靠近零的原则 在C+ ...

  2. 【C语言】深度理解 负数取余 取模

    C语言深度理解 负数取余 取模 关于取余和取模的问题 定义 取余时有负数怎么计算? 取余和取模的区别 取余和取模时候等价什么时候不等价 总结 关于取余和取模的问题 许多小伙伴在刚开始学C语言的时候,知 ...

  3. C语言符号-取余\取模运算

    目录 前言 取整 向0取整 向-∞取整 向+∞取整 四舍五入取整 汇总 取模\余 对于正数取模 对于负数取模 取余和取模的理解 前言 本文主要讲解并真正理解取余\取模运算是怎样的! 取整 首先取整有四 ...

  4. C语言中四种取整方式、取余/取模的运算以及负数取模的问题

    零向取整.负无穷向取整.正无穷向取整.四舍五入取整 如果将一个浮点数赋值给整形,只会保存整数位: 这种取整方式为零向取整,C语言默认采用的是这种方式 C语言中也有对应的零向取整函数: 同理还有一种函数 ...

  5. C#练习——窗体实现简单计算器,完成加,减,乘,除,取余,简单运算

    c# windows窗体练习:实现简单计算器,完成加,减,乘,除,取余,简单运算 //编写环境:vs2017 using System; using System.Collections.Generi ...

  6. python的取整和取余_python取余取整

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 取余的公式:余数=除数-被除数*商python的的余数是按照整除(向下取整)得到 ...

  7. Java 水仙花数(取余%取整/)

    水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身.例如:1^3 + 5^3+ 3^3 = 153. public class Flower {public static void ...

  8. 蓝桥杯算法训练之数对(取余取整)

    问题描述 编写一个程序,该程序从用户读入一个整数,然后列出所有的数对,每个数对的乘积即为该数. 输入格式:输入只有一行,即一个整数. 输出格式:输出有若干行,每一行是一个乘法式子.(注意:运算符号与数 ...

  9. python基础知识之整除、取余、幂运算

    数字和表达式 python解释器可以当作计算器使用 >>>2+2 4 整数除法 一个整数被另一个整数除,计算结果的小数部分被截去,只保留整数部分. 如果参与除法的两个数中有一个为浮点 ...

最新文章

  1. Java获取系统日期时间
  2. 使用通用SOP8转接板调试半桥驱动芯片
  3. 委托的Invoke 和 BeginInvoke 与Control的Invoke和BeginInvoke(转-因为写得很好)
  4. Session与Cookie
  5. python编程软件排行榜_Python编程开发工具:这10个对Web开发者最有用的Python包
  6. linux vi 上下左右 ab,【Linux】Ubuntu vi 上下左右变ABCD及 apt-get install报错问题解决方法...
  7. 关于js中replace()只能替换字符串中第一个对象的问题
  8. S3C6410和S5PV210的启动模式介绍
  9. 7-1 图深度优先遍历(c++)
  10. 干货-Google支付后台验证操作流程【业务后台-GP后台流程】
  11. IT 行业平均薪资第一
  12. 用友文件服务器不存在,用友T6软件备份提示超时已过期,错误'53'文件不存在
  13. springboot添加切面
  14. 学习笔记:网络层,IP包头,路由器配置
  15. matlab实验:实验3MATLAB程序控制流程
  16. Java单元测试典型案例集锦
  17. Aria2Android 免root,Linux Bash脚本:在本地机上部署用户自用aria2服务
  18. HTTP Status 404 - Not Found的一种情况
  19. Python网络爬虫(八)根据api判断法定节假日
  20. 全国计算机等第良好,第56次全国计算机等级考试(国考)通过考生名单

热门文章

  1. 手持云台全国产化电子元件推荐方案
  2. 乘法逆元 java_乘法逆元
  3. Pillow图片格式转换
  4. LaTex 之 TexLive 2020 + TexStudio 的安装及其他软件推荐
  5. 小米10 Ultra版的120W充电器,充 MacBookPro可以吗
  6. shellcode编码
  7. AsciiDoc各种图表
  8. 杂学——密码学、中国余数定理、韩信点兵法、取模运算
  9. React Native发布——使用AppCenter
  10. 国泰君安通达信交易接口的定义?