
package day03;
/*
* float long
* float 的精确没有long高(有效位数=位数短)
* float 的范围大于long指数可以很大
*/
public class Demo01 {
public static void main(String[] args) {
long l = 2345345435643L;
System.out.println(l);
float f = l;//精度损失
f = f*1000000;
System.out.println(f);
l = (long)f;//溢出了
System.out.println(l);
}
}
package day02;
/*
* 数学运算
* 类型相同的参与运算,返回类型相同的值
* 小于32位数作为int计算
* 整数的除法结果是整数:整除现象
*/
public class Demo14 {
public static void main(String[] args) {
int x = 1;
long y = 2L;
// int z = x + y;//编译错误,int自动转位long,x+y结果是long类型
long z = x+y;//将x类型int转化位long
System.out.println(z);
x = 2;
int n = 1/x;//1除以2得到整数0
System.out.println(n);
double d = 1D/x;//0.5
System.out.println(d);
long now = System.currentTimeMillis();
long year = now/1000/60/60/24/365 +1970;
System.out.println(year);
double dx = now/1000/60/60D/24/365+1970;
System.out.println(dx);
int a = 1/2 + 1/3;
System.out.println(a);
}
}
package day03;
/*
* 取余数运算
* 获取除法结果得余数
* 1 负数的余数是负数
*
*/
public class Demo02 {
public static void main(String[] args) {
int num = 9;
int x = num %5;//9/5 得1余4
System.out.println(x);//4
num = 4;
System.out.println(num%5);//4/5 得0 余4
System.out.println(-1%5);//-1/5 得0 余-1
}
}
package day03;
/*
* 自增(减)运算
* ++ --
*/
public class Demo03 {
public static void main(String[] args) {
int a = 1;
a++;//将a 增加1
++a;//将a 增加1
System.out.println(a);//3
a = 1;
int b = a++;//后++,先用a然后+1
//上述表达的运算步骤:先执行++运行,再执行赋值运算
//1 取a的值1作为(a++)的结果1
//2将a增加1 a为2
//3执行赋值运算,将(a++)结果1赋值给b为1
System.out.println(a+","+b);
a = 1;
a = a++;//首先执行a=a+1,然后把初始的a的值赋给a
//上述表达的运算步骤:先执行++运行,再执行赋值运算
//1 取a的值1作为(a++)的结果1
//2将a增加1 a为2
//3执行赋值运算,将(a++)结果1赋值给a为1
System.out.println(a);
a = 1;
b = ++a;//先++,先+1,然后用a
//执行步骤:先执行++,然后执行赋值运算
//1 将a增加1 a为2
//2 取a的值为(++a)的值2
//3 赋值运算,将(++a)的值2,赋值给b为2
System.out.println(a+","+b);//2,2
//++a,a++,后a的值都加了1,b的值:++a,a+1后的值,a++,a+1前的值,都是最后赋值
//运算优先级:与数学规则一致
//++ -- 优先级高于*、/
int x = 5;int y = 6;
//x = 4,y = 7
y = y + --x * y++ + y;//不建议使用的表达式!
//6 + 4 * 6 + 7
System.out.println(y);
}
}
