分享

java中的运算符 取余 取模

 沙门空海 2018-02-14

首先,取余和取模是不一样的。

其次,java中的%运算符表示取余。

最后,取余和取模的区别到底是什么呢?

public class Test {
public static void main(String[] args) {
System.out.println("rem表示取余,mod表示取模");
System.out.println("9rem2=" + 9 % 2);
System.out.println("9mod2=" + Math.floorMod(9, 2));
System.out.println();
System.out.println("-9rem-2=" + -9 % -2);
System.out.println("-9mod-2=" + Math.floorMod(-9, -2));
System.out.println();
System.out.println("-9rem2=" + -9 % 2);
System.out.println("-9mod2=" + Math.floorMod(-9, 2));
System.out.println();
System.out.println("9rem-2=" + 9 % -2);
System.out.println("9mod-2" + Math.floorMod(9, -2));
}
}

输出结果:

rem表示取余,mod表示取模
9rem2=1
9mod2=1


-9rem-2=-1
-9mod-2=-1


-9rem2=-1
-9mod2=1


9rem-2=1
9mod-2=-1

输出结果分析:当除数与被除数同号时,取余和取模结果一样。当除数与被除数异号时,取余和取模结果不同,且取余的结果和被除数同号,取模的结果和除数同号

取模:这里Math.floorMod方法的功能是向下取模(也就是取模)。“向下”的意思就是说尽可能让商更小(商值向负无穷方向取)。如-9mod2,-9/2=-4.5,取商为-5。余数为-9-(2*-5)=1。

取余:尽可能让商的绝对值更小商值向0的方向取,即商为负值时,取大一点,商为正值,取小一点。如-9rem2,-9/2=-4.5,取商为-4。余数为-9-(2*-4)=-1。

结论:java中的%运算符表示取余。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多