据类型与运算符(二)

一、基本数据类型的转换

1.不同的基本数据类型之间进行运算时需要进行类型转换。

注:boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。 经验2:基本数据类型的类型转换主要在赋值运算、算术运算时发生。

转换方式有两种:自动类型转换和强制类型转换

1)规则1:如果一个操作数为double型,则整个表达式可提升为double型

  规则2:满足自动类型转换的条件 ,两种类型要兼容: 数值类型(整型和浮点型)互相兼容, 目标类型大于源类型

默认转换(从小到大的转换)

        byte,short,char—int—long—float—double   

        byte,short,char相互之间不转换,他们参与运算首先转换为int类型

        byte a = 15; 
        byte b = 100;
        byte c = a + b;    //java中数值计算默认使用int类型,得到结果是int类型,所以不能直接使用byte接收
        byte c = (byte)(a + b);

        short e = 15;
        short f = 100;
        short g = e + f;    //报错原因同上,因为byte与short取值范围比int小
        short g = (short)(e + f);

        long h = 15;
        long i = 100;
        long j = h + j;    //此代码不会报错,因为long类型取值范围比int大


        byte num = '0';    //char类型可以跟byte类型进行转换,原因:涉及到ASCLL取值,且取值范围是0-127,但并不绝对

        char ch = '0'
        byte chByte = ch;    //char类型的变量不能赋值给byte类型的变量,但char值可以直接赋值给byte类型的变量

二、逻辑运算符

位运算符

注意:位运算符的操作数都是整型数,包括int、short、long、byte和char

           位运算符的运算结果也都是整型数,包括int、long

           如果操作数是char、byte、short,位运算前其值会自动晋升为int,运算结果也为int

           位运算符对操作数以二进制为单位进行运算

运算符的优先级

        优先级别最低的是赋值运算符

        单目运算符包括! ~ ++ --,优先级别高

        可以通过()控制表达式的运算顺序,()优先级最高

        总体而言,优先顺序为算术运算符 > 关系运算符 > 逻辑运算符

        从右向左结合性的只有赋值运算符、三目运算符和单目运算符

 总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值