整形的默认类型 是int
public class Var {
public static void main(String[] args) {
long a = 123456789 * 987654321;
System.out.println(a);
long b = 123456789L * 987654321L;
System.out.println(b);
}
}
输出:
-67153019
121932631112635269
近似值不精确问题
public class Var {
public static void main(String[] args) {
double a = 4.35 * 100;
System.out.println(a);
System.out.println(Math.round(a));//四舍五入
double aa = 0.1;
double bb = 2.0 - 1.9;
System.out.println(aa == bb);
System.out.println(Math.abs(aa - bb) < 1e-6);//最小数对比法,若比绝对值小于1e-6视为0
}
}
输出:
434.99999999999994
435
false
true
位运算:
左移(<<) :考虑正负号
右移( >> ): (每次除以2) 负数左补 1
无符号右移(>>>):高位补0