“求余”和“取模”的区别

昨天在与同班学员的讨论中,对Java中的“%”符号到底是“求余”还是“取模”产生了疑问。通过百度发现这两种运算确实很像,在概念上有很多重复部分,而主要区别在于对负整数进行除法运算时操作不同。

下面进行举例说明:

对整型变量a、b来说,求余运算和取模运算的公式都是:

1.求整数商:c=a/b;

2.计算余数或者模:r=a-c*b。

两种运算在第一步时就产生了不同的结果:求余运算在取c的值时,向0方向舍入;而取模运算在计算c的值时,向负无穷方向舍入。

例如:计算-9 mod 5

设a=-9,b=5

1.求整数商:求余运算得c=-1(向0方向舍入);取模运算得c=-2(向负无穷方向舍入)。

2.计算余数或者模:由于c值不同,求余得r=-4;取模得r=1。

归纳:

a和b符号相同时,求余和取模结果相同;

a和b符号不同时,求余结果的符号和a相同,取模结果的符号和b相同。

另外不同环境下“%”运算符的含义也不同:

1.c/c++、Java为求余

2.Python为取模

推荐阅读更多精彩内容

  • 一、除法运算符"/" 二元运算符,具有左结合性。参与运算的量均为整型时,结果为整型,舍去小数。如果运算量中有一个为...
    聪_0b56阅读 7,509评论 0 1
  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:选D,7+9=16;9+(-1)=8;(...
    Alex_bingo阅读 4,464评论 0 14
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    子涵传媒阅读 1,859评论 0 12
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 6,428评论 0 4
  • 恭喜你今天成功收回定义爱的主控权! 1. 某某人,根据你的自我定义,你觉得怎样的自己才是值得被爱的?为什么? 根据...
    小雪花M阅读 15评论 1 1