Java中的相除(/)和取余(%)

pmsa
802
2021-04-22

让我们先看一段代码:

public class Division_remainder {
    public static void main(String[] args) {
        int a = 13 / 5;
        int b = 13 % 5;
        int c = 5 / 13;
        int d = 5 % 13;
        int e = 13 / -5;
        int f = -13 / 5;
        int h = -13 % 5;
        int j = 13 % -5;
        System.out.println(a + "," + b);
        System.out.println(c + "," + d);
        System.out.println(e + "," + f);
        System.out.println(h + "," + j);
    }

结果为:

2 ,3
0 ,5
-2,-2
-3,3

再来一个一个分析:
a = 13 / 5,a = 2,其实就是数学上的13 / 5 ,结果为2。
b = 13 % 5,b = 3,这也是数学上的运算,得出余数为3。
c = 5 / 13,c = 0,因为被除数小于除数,结果可以看成0.x,但是int类型是整数类型,所以结果只为0。
d = 5 % 13,d = 5, 数学上规定:如果被除数比除数小,商是0,余数就是被除数本身
e和f不用说了,结果都为-2。
但是h和j怎么是一个-3一个3呢, 因为取余运算的符号是根据第一个运算数决定的 ,-13 % 5结果是-3,而13 % -5结果则是3。

转载:
原文链接:https://blog.csdn.net/sinat_41152339/article/details/81054379

动物装饰