java基础学习笔记--(-5%3)与(5%-3)的值是否一样

这个问题一上来,一脸懵逼,只知道两者的值是不一样的,前者是-2后者是2,至于为什么,不知道。但是凡事都有个为什么,深究之下,原来是属于纯粹的数学问题:
n % m的定义是 n = k * m + p,其中: n、m、k、p是整数.
k=[n/m] ,方括号的含义是不大于n/m的最大整数;
-5 = (-1)* 3 +(-2); 此时, k = [n/m] = [(-5)/3] = 1 ;余数p = -2;
5 =(-1)*(-3)+ 2; 此时, k = [n/m] = [5/(-3)] = -1 ;余数p = 2;
5 = 1 * 3 + 2; 此时, k = [n/m] = [5/3] = 1 ;余数p = 2;



你可能感兴趣的:(java)