Java运算符

Java之运算符

java运算符分为算数运算符、位运算符、逻辑运算符、其他运算符(三元运算符),具体如下:

&(按位与)

 

&按位与的运算规则是将两边的数转换成二进制位, 最后运算最终值,其运算法则为:两个数都为真,最终值才为真,一个假既值为假。(1&1=1、1&0=0、0&1=0、0&0=0)

3的二进制位是0000 0011,5的二进制位是0000 0101,那么就是011 & 101,由按位与运算的规则可求得,最终值为001,既值为1。

7的二进制位是0000 0111,那就是101 & 111等于101,也就是0000 0101,估值为5

&&(逻辑与)

 

&&逻辑与也称为短路逻辑与。先运算&&左边的表达式,一旦为假,后续不管多少的表达式,均不再计算,一个为真,在计算后边的表达式,两个为真才为真。

|(按位或)

|按位或和&按位与计算方式都是转换二进制再计算,不同的是计算规则(一个为真即为真)1|0 = 1、0|1 = 1、1|1 = 1、0|0 = 0

8的二进制位0000 1000,2的二进制位是0000 0010,1000 | 0010,最终值为1010,故8|2=10

 ||(逻辑或)

逻辑或||的运算规则是一个为真即为真,后续不再计算,一个为假再计算后边的表达式。

^(异或运算符)

^异或运算符就是字面意思,异就是不同,其运算规则为1^0 = 1、1^1 = 0、0^1 = 1、0^0 = 0

5的二进制位是0000 0101,9的二进制位是0000 1001,也就是0101^1001,结果为1100,00001100的是十进制为是12

<<(左移运算符)

5<<2的意思为5的二进制位往左挪两位,右边补0,5的二进制位是0000 0101,就是把有效值101往左挪两位就是0001 0100,正数右边第一位补0,负数补1,等于乘于2的n次方,十进制位是20

>>(右移运算符)

凡是运算符都要先把值转换成二进制再进行后续的运算,5的二进制位是0000 0101,向右移两位就是把101右移后两位,正数左边第一位补0负数补1,等于乘于2的n次方,结果为1

 ~(取反运算符)

取反就是把要处理的数先转换为二进制,1为0,0为1,10 的二进制位是0000 1010,取反之后就是1111 0101,值为-11

>>>(无符号右移运算符)

正数无符号右移

无符号右移运算符和右移运算符的主要区别在于负数的计算,因为右移运算符是高位补0,移多少位补多少个0

15的二进制是0000 1111,右移两位就是0000 0011,最终值为3

 

posted @ 2019-08-27 15:45  wudidamowang666  阅读(139)  评论(0编辑  收藏  举报