上题回顾与解析
public static void main(String[] args) {
System.out.println("3 % 2 = "+(3 % 2));
System.out.println("2 % 3 = "+(2 % 3));
System.out.println("-3 % 2 = "+(-3 % 2));
System.out.println("-2 % 3 = "+(-2 % 3));
System.out.println("3 % -2 = "+(3 % -2));
System.out.println("2 % -3 = "+(2 % -3));
System.out.println("-3 % -2 = "+(-3 % -2));
System.out.println("-2 % -3 = "+(-2 % -3));
}
输出:
3 % 2 = 1
2 % 3 = 2
-3 % 2 = -1
-2 % 3 = -2
3 % -2 = 1
2 % -3 = 2
-3 % -2 = -1
-2 % -3 = -2
解析: 整数的取余就不用解释了,主要是负数的取余
维基百科中的余数:在算术中,当两个整数相除的结果不能以整数商表示时,余数便是其“余留下的量”。可见,余数是两整数相除的结果,但java中允许负数的取余
模拟java取余算法,如下:
/**
* @desc 取余模拟算法
* @param dividend 被除数
* @param divisor 除数
* @return
* @return int
*/
public static int remainder(int dividend,int divisor){
return dividend - dividend / divisor * divisor;
}
记住一点就行,java中的取余,结果的正负由被除数决定,被除数为正则正,反之亦然。 即,取余中含负数,按整数计算,结果正负为被除数的正负。
每日一题
public static void main(String[] args) {
final long lg1 = 24 * 60 * 60 * 1000 * 1000;
final long lg2 = 24 * 60 * 60 * 1000;
System.out.println(lg1/lg2);
}