public class Demo06 {
    public static void main(String[] args) {
        //二元运算符
        int i1 = 10;
        int i2 = 20;
        //Ctrl+D:自动复制当行至下一行

        System.out.println(i1+i2);    //结果为30
        System.out.println(i1-i2);    //结果为-10
        System.out.println(i1*i2);    //结果为200
        System.out.println(i1/i2);    //结果为0
        //照理来说10/20应该是0.5,但因为a、b都是int类型,输出结果为整数,所以自动去掉了0后小数
        //所以要用到强制转换,正确写法应是:
        System.out.println(i1/(double)i2);    //结果为0.5
        System.out.println("==============================");

        long a = 12345616321L;
        int b = 123;
        short c = 10;
        byte d = 8;

        System.out.println(a+b+c+d);    //结果为12345616462,是long类型
        System.out.println(b+c+d);      //结果为141,int类型
        System.out.println(c+d);        //结果为18,也是int类型
        System.out.println("==============================");

        //关系运算符返回的结果:正确(true)、错误(false)——>布尔值
        int a1 = 10;
        int a2 = 20;

        System.out.println(a1>a2);      //结果为false
        System.out.println(a1<a2);      //结果为true
        System.out.println(a1==a2);     //结果为false
        System.out.println(a1!=a2);     //结果为true

        //模运算%,即取余
        int a3 = 21;
        System.out.println(a3%a1);      //结果为1,即21/10=2....1余数为1
        System.out.println("==============================");

        //++  --即自增、自减运算(一元运算符)
        int x = 4;
        int y = x++;    //执行完这行代码后,先给y赋值,再自增
        int z = ++x;    //执行这行代码前,先自增,再给z赋值

        System.out.println(x);  //结果为6,因为这里输出的x是y、z运算完后的值,即自增了两次
        System.out.println(y);  //结果为4,这里的y是先赋值,这时x的值为4,所以y也是4
        System.out.println(z);  //结果为6,因为前面的y赋值以后自增,x的值为5了,++x先自增再赋值,所以z为6
        System.out.println("==============================");

        //幂运算:2^3即2的3次方,再java中无法出现^,还有一些其他无法出现的运算,要使用一些工具类来操作
        double pow = Math.pow(2,3);

        System.out.println(pow);    //结果为8.0
    }
}