让我们先看看代码:
公共类division _ remainder { publicstaticvoidmain (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,-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的结果。