取余和取模

2021-09-06  本文已影响0人  念䋛

参考链接:https://blog.csdn.net/nishiwodebocai21/article/details/97012993
取余和取模在除数和被除数都是正数的情况下是没有区别的,但是如果出现负号的时候,结果就不一样了

        System.out.println (-4 % 3);  //-1
        System.out.println (4 % 3);  //1
        System.out.println (4 % -3);  //1
        System.out.println (Math.floorMod (-4, 3));  //2
        System.out.println (Math.floorMod (4, 3)); //1
        System.out.println (Math.floorMod (4, -3)); //-2

在matlab中,关于取余和取模是这么定义的:

当y≠0时:

取余:rem(x,y)=x-y.*fix(x./y)

取模:mod(x,y)=x-y.*floor(x./y)

其中,fix()函数是向0取整,floor()函数是向负无穷取整

例如: 4 / (-3) 约等于-1.3

在取余运算时候商值向0方向舍弃小数位于是fix(-1.3) = -1
取余结果 : 4 - (-3)(-1) = 1
在取模运算时商值向负无穷方向舍弃小数位于是 floor(-1.3) = -2
取模结果 : 4 - (-3)(-2) = -2


image.png
上一篇 下一篇

猜你喜欢

热点阅读