“求余”和“取模”的区别
展开全部
昨天在与同班学员的讨论中,对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为取模
下面进行举例说明:
对整型变量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为取模
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询