除法演算发生的截断

除法运算发生的截断

q = a / b;

p = a % b;

 

一般来说我们希望满足:

1、q*b + p == a

2、当a改变符号时,q的符号也会改变,但是q的绝对值不会改变

3、当b>0时,我们希望 0 < p < b

 

但是这三个条件不会全部满足,编译器一般会选择满足条件一、二,所以:

 

3 / 2 = 13 % 2 = 1

 

-3 / 2 = -1

-3 % 2 = -1