2022年7月14日 星期四

Java 的 floorMod 和 %

// System.out.println(Math.floorMod(113, 30)); // 23
System.out.println(Math.floorMod(113, -30)); // -7
System.out.println(Math.floorMod(-113, 30)); // 7
System.out.println(Math.floorMod(-113, -30)); // -23
System.out.println("-----------------------");
// System.out.println(113 % 30); // 23
System.out.println(113 % -30); // 23
System.out.println(-113 % 30); // -23
System.out.println(-113 % -30); // -23
System.out.println("=======================");
// System.out.println(Math.floorDiv(113, 30)); // 3
System.out.println(Math.floorDiv(113, -30)); // -4
System.out.println(Math.floorDiv(-113, 30)); // -4
System.out.println(Math.floorDiv(-113, -30)); // 3
System.out.println("-----------------------");
// System.out.println(113 / 30); // 3
System.out.println(113 / -30); // -3
System.out.println(-113 / 30); // -3
System.out.println(-113 / -30); // 3

除數和被除數全正數和全負數時,% 和 mod 一模一樣

※全負數時,除法是負負得正;

※有負數時, % 的正負號看左邊,mod 的正負號看右邊,如 -113 % -30,-113 是左邊;-30 是右邊,一正一負時也是一樣

※113 / 30 是 3...23

floorDiv 時,一正一負為負,(3 + 1) * -1 = -4,固定加1乘-1

floorMod 時,30 - 23 = 7,然後看 30 是正或負,7 的正負號就和它一樣

目前不知道 mod 這樣有什麼用




 

沒有留言:

張貼留言