*Java运算符大致分为逻辑运算符(&&,||,!)、算数运算符(+, -, , / ,+=)、位运算符(^,|,&)、其他运算符(三元运算符)
&(位与)&&(逻辑与)&:位与 运算规则是将两边的数转换为二进制位,然后运算最终值(一假则假)(1&1=1 , 1&0=0 , 0&1=0 , 0&0=0)
3—>0011, 5—>0101
3&5——>011 & 101 = 1
所以最终结果为:1
&&逻辑与也称为短路逻辑与,先运算&&左边的表达式,一旦为假,后续不管多少表达式,均不再计算,一个为真,再计算右边的表达式,两个为真才为真。
||(逻辑或)&:位与 运算规则是将两边的数转换为二进制位,然后运算最终值(一真则真)(1&1=1 , 1&0=1 , 0&1=1 , 0&0=0)
3—>0011, 5—>0101
3&5——>011 | 101 = 111
所以最终结果为:7
逻辑或||的运算规则是一个为真即为真,后续不再计算,一个为假再计算右边的表达式。
<<(左移运算符)^异或运算符顾名思义,异就是不同(取反)即先进行或运算在取反(符号为不能省略),其运算规则为1 ^0 = 1 , 1 ^ 1 = 0 , 0 ^1 = 1 , 0 ^0 = 0
3的二进制位是0011,5的二进制位是 0101 ,也就是0011^ 0101,结果为>1000 , 1000的十进制位是6
>>(右移运算符)1<<3的意思为1的二进制位往左挪3位,右边补0,1的二进制位是0001 , 就是把有效值1往左挪两位就是1000 ,正数左边第一位补0,负数补1,等于乘于2的n次方,十进制位是8
凡位运算符都是把值先转换成二进制再进行后续的处理,5的二进制位是0101,右移3位就是把0101右移后为0000 0000,正数左边第一位补0,负数补1,等于除于2的n次方,结果为0



