day07 数学运算符的类型自动转换 关系运算符 位运算符 相亲Math

运算符的理解

运算符

算数运算符:
  1. +
  2. -
  3. 乘以
  4. /
  5. %(取余数)模运算
  6. ++
public class demo01{
    public static void main(String[] args){
        int a =10;
        byte b =20;
        System.out.println(a+b); //结果类型为int
        //只要整数加减乘除,如果没有long的类型,默认会统一转换为int类型
        
        long d =1237192381273891723891289L;
        byte e = 12;
        System.out.println(d+e); //结果类型为LONG
        //只要出现long类型,结果都会默认转换为long类型
        //只要出现double类型,结果都会默认转换为double类型
        /*
        注意点:
        如果结果出现浮点数,没有转换类型的情况下会得到0的结果。
        */
        //System.out.println(a/b);//实际结果为0.5,得到结果为0,因为未转换浮点数
        System.out.println(a/(double)b);  //正确表达方式
    }
}
计算的自动转换规则:
  1. 只要整数加减乘除,如果没有long的类型,默认会统一转换为int类型
  2. 只要出现long类型,结果都会默认转换为long类型
  3. 只要出现double类型,结果都会默认转换为double类型

单词:cast 转换

idea快捷操作:ctrl+d 快速复制上一行

package operator;

public class demoday01 {
    public static void main(String[] args) {
        int a = 10;
        byte b =20;
        long c=100L;
        double d =3.14;
      
        System.out.println(a+b); //不出现浮点数和long类型,默认转换为int
        System.out.println(a-c); //出现long类型,自动转换为long类型
        System.out.println(c*d); //出现浮点数,自动转换为浮点数类型,由于离散型,后缀会不准
        System.out.println(a/(double)b);  //出现浮点数我们要转换为浮点数才会计算,不然只会得到0
        
        short g1 = 5;
        short g2 = 2;
        System.out.println(g1/g2);//2	int类型,不会出现浮点数
        System.out.println(g1%g2);//1  模运算 取余数
        System.out.println(g1/(double)g2);//2.5
    }
}
自增自减的运算规则

a++跟++a的区别

b=a++相当于,b=a,然后a=a+1

b=++a相当于a=a+1,然后才轮到b=a

等号前面就先赋值,等号后面就先计算再赋值

package operator;

public class demo03Day06 {
    public static void main(String[] args) {
        int a = 2;
        int b =a++; //相当于先运算b=a,然后a=a+1
        int c =++a; //相当于a=a+1,然后c =a
        System.out.println(b); //2
        System.out.println(c); //4
    }
}

赋值运算符: =
关系运算符:
  1. >
  2. <
  3. >=
  4. <=
  5. ==
  6. !=
  7. instanceof
package operator;

public class demo02Day06 {
    public static void main(String[] args) {
        int a = 1;
        int b = 1;
        int c = 2;
        byte d = 2;
        double e =2.123123;
        float f = 2.123123f;
        short g =5;
        System.out.println(a==b);//true
        System.out.println(a==c);//false
        System.out.println(d==c);//true
        System.out.println(d!=e);//true
        System.out.println(f==e);//false 精度错误 避免浮点数做比较
        System.out.println(c<=e);//true 避免浮点数做比较
        System.out.println(g/c);//未转换类型就=2
        //模运算,也就是取余数
        System.out.println(g/(double)c);//正确
        System.out.println(g%c);//模运算 结果=1
    }
}

逻辑运算符
  1. && (与)and
  2. || (或)or
  3. ! (非)not取反
package operator;

public class demo04Day06 {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
        boolean c =true;
        System.out.println(a&&b);//两个为真才为真
        System.out.println(a||b);//其中一个为真就是真
        System.out.println(!(a&&b));//只要其中一个假的,就是真。只要两个都是真,才是假。
        System.out.println(!(a&&c));//只要两个都是真,才是假。只要其中一个假的,就是真。
        //短路运算
        int d =5;
        boolean f = false;
        System.out.println(f&&(d>d++));//头部分只要是假的,就停止后面的运算了
        System.out.println(d);//本来d++是先运算的可以等于6,条件是真的。但是头一部分是假的就直接退出运算了
    }
}

位运算符(二进制才使用)

A =0011 0101

B=1001 0010

A&B =0001 ,1000 //and,如果上下相同就为1,或者为0

A|B =1011 0111 //或者,如果只要上下一个为1就为1

A^B =0101 1000 //取反,如果上下两位相同,则为1,否为0

~A =1100 1010 //取反

2<<3 2右移3位,相当于2乘以2乘以2乘以2

0000 0000为0

0000 0001 为1

0000 0010 为2,右移三位 0001 0000

0000 0011 3

0000 0100 4

0000 0101 5

0000 0110 6

0000 0111 7

0000 1000 8

0001 0000 为16

课外扩展

java计算幂,数字的多少次方.

Math是java重要的数学运算库

引用Math库的pow计算。

package operator;

public class demo03Day06 {
    public static void main(String[] args) {
        double d =Math.pow(2,4); //2的四次方,输出为浮点数
        System.out.println(d);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值