Java03——数据类型转换和运算符

一.数据类型转化

前提:不同数据之间进行运算时要进行类型转换

注:1.boolean不能进行转换

       2.类型转换一般用于赋值运算算术运算

       3.类型转换分为自动类型转换和强制类型转换。

1.自动类型转换

转换的前置条件:1.两种类型要兼容。

                             2.目标类型大于源类型。

注:1.类型转换中大小关系:byte,short,char—int—long—float—double。

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

 2.强制转换类型

 即在数据类型前小括号并加入要强制转换的类型。

注:特殊情况byte

2.1程序

2.2输出结果

 注释:byte的强制转换设计到补码和反码,这里暂不了解以待后续补充;方法是用未转换类型的数据去减或加256直到不够减或者加256得到的数据就是强转byte的数据类型。

二.运算符

1.关系运算符

 注:1.结果为布尔值!!!!!!!

        2.只有==,!=支持所有数据类型的转换。

关于Boolean的运用:

是先给boolean赋值(常用的布尔赋值就是flag),然后再判断flag是否和已知结果相等或者不等,然后得出的flag----即是(true)或否(false)

 2.逻辑运算符

注:1.分清短路与逻辑的区别,短路所用的都是两个字符,所以短路要求必须两侧都为true。

       2.短路逻辑要切记!左边为false,右边不计算,见下图

       3.其中只有^运算规则是结果相同为false。

3.位运算符

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

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

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

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

其中:关于左移和右移

左移即将数字的二进制表达左移一格

例如6:0000 0110 左移:0000 1100 即12(这样是快速乘以2)故右移则

       6:0000 0110 右移:0000 0011 即3(快速除以2)

注释:无符号右移和右移,在右移中负数是符号位补1,而无符号右移则是补0(目前只知道这一条不同后续以待补充)

4.条件运算符

条件运算符技巧记法:你有女朋友么?幸福的人:单身狗

条件运算符也称作三目(三元)运算符 

 5.总结

关于运算符的优先级

1.最低的是赋值运算符

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

3.可以通过()调整优先级,()的优先级最高

4.总体来看,算术>关系>逻辑

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

关于运算符

1.其中b为byte数据类型。

 注释:看第一行中1默认为int数据类型,所以两者相加数据类型改变为int(自动晋升),不能赋值给byte;第二行则是先赋值,这时候1已经赋值给了b成为了byte数据类型。

2.关于精度。

 注释:第一行中98.36已经是单精度数据了;而第二行中的98.36则是双精度数据,强行转换成单精度数据的时候丢失了精度。即两者的区别————强转注意丢失精度。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值