美文网首页
java 中的除法与取余

java 中的除法与取余

作者: justonemoretry | 来源:发表于2020-01-09 14:36 被阅读0次

一、取余?取模?

首先区别一下取模运算(Modulo Operation)和取余运算(Complementation ),这两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。

例如对于整型数a,b来说,取模运算或者求余运算的方法都是:

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

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

但是求模运算和求余运算在第一步不同:

取余运算在取c的值时,向0 方向舍入(fix()函数)

而取模运算在计算c的值时,向负无穷方向舍入(floor()函数)。

例如:计算-7 Mod 4

那么:a = -7;b = 4;

第一步:求整数商c,c应该是-1.75,如进行求模运算c = -2(向负无穷方向舍入),求余运算则c = -1(向0方向舍入);

第二步:计算模和余数的公式相同,但因c的值不同,求模时r = 1,求余时r = -3。

归纳:当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。

当符号不一致时,结果不一样。求模运算结果的符号和b一致,求余运算结果的符号和a一致。

另外各个环境下%运算符的含义不同,比如c/c++,Java 为取余,而python则为取模。

所以当取余被除数和除数符号不一致时,Java得出的结果是和左边的符号一致的!

二、正常求商

关于商,与取余运算的第一步计算是一致的,即a/b都会向0取整,即- 7 / 4 = -1,7 / 4 = 1。

相关文章

  • java 中的除法与取余

    一、取余?取模? 首先区别一下取模运算(Modulo Operation)和取余运算(Complementatio...

  • java 整数取余

    java整数取余是建立在java整数除法的基础上的,java整数除法可以参考我的上一篇文章java 整数除法。 这...

  • 运算

    问题1:在Java中,除法分为取整和取余,不是直接得到计算结果的。解决的办法:计算值的变量和结果值的变量类型应该是...

  • Java和Python中的整数除法,取余,舍入

    关于除法,你也许觉得没什么值得谈论的,毕竟小学的时候体育老师就教过我们了。然而对于编程中使用的除法,我觉得还是有很...

  • 【R语言】常规除法,取整,取余,向上取整,向下取整,四舍五入

    常规除法:/ 取整:%/%,就是取结果的整数部分 取余:%%,对于不能整除的情况,取余下来的部分 对于取整和取余我...

  • Swift中的截断除法取余

    一、截断除法介绍 对一个数求余数的,如果是整数运算,我们可以使用%来做;如果是浮点型数据的话,我们就需要用截断除法...

  • 除法取余引发的思考

    最近做题遇到一个问题,具体题目不表,我把关键问题抽象一下: 求组合数C(n1,m1)*C(n2,m2)*...*C...

  • Mysql——数值运算符

    mysql常用的数值运算符 ceil() 进一取整。 floor() 舍一取整。 div 整数除法。 mod 取余...

  • python 运算符

    算术运算符 加法:+ 减法:- 乘法: * 除法: /(与数学中除法一致) 或 //(地板除,只取结果的整数部分,...

  • 奇怪的算数运算符们

    % 取余 // 取商 / 数学意义上的除法 ** 幂(指数) 另外python居然没有自增减运算符。

网友评论

      本文标题:java 中的除法与取余

      本文链接:https://www.haomeiwen.com/subject/wpryactx.html