位逻辑运算子有“与”(AND)、“或”(OR)、“异或(XOR)”、“非(NOT)”,分别用“&”、“|”、“^”、“~”表示。
位运算符用来对二进制位进行操作,Java中提供了如下表所示的位运算符:位运算符中,除 ~ 以外,其余均为二元运算符。操作数只能为整型和字符型数据。
java移位运算符不外乎就这三种:(左移)、(带符号右移)和(无符号右移)。左移运算符 左移运算符使指定值的所有位都左移规定的次数。
位运算符有:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)。其中,按位取反运算符是单目运算符,其余均为双目运算符。
**一个数异或同一个数两次,结果还是那个数。1 ^ 0 = 0,0 ^ 1 = 0,0 ^ 0 = 1,1 ^ 1 = 1 1 ^ 2 ^ 2 = 1 ~(取反)~6 = -7 ~5 = -6 以上是正对二进制位来算 新人学java一周。
&和| 没的说,用的很频繁,一般做循环操作或者if判断的时候很多用,^ ~ 更多用于底层,众所周知,如果你打算应用开发的话,一般不设计的。
其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方向都是自左至右,且优先级低于关系运算符。
例如,对于9 = 8,9既不小于8也不等于8,所以9 = 8 的运算结果为false。对于9 = 9,因9等于9,所以9 = 9的运算结果为true。 逻辑运算子 逻辑运算子要求运算元的资料型别为逻辑型,其运算结果也是逻辑型值。
int的取值范围: (-2147483648 ~ 2147483647)。
++或者--在数字前边的时候,数字先+1或者-1后参与运算,++或者--在数字后面的时候,数字先参与运算后再+1或者+1。
移位运算一般用来取某几个指定位上的值,或快速实现乘以或除以2^n的运算。比如21,就是把00000010变成了00000100,2变成了4,相当于乘了2;602,就是把00111100变成了00001111,60变成了15,相当于除以4。
乘以或除以2^n的运算。比如21,就是把00000010变成了00000100,2变成了4,相当于乘了2;602,就是把00111100变成了00001111,60变成了15,相当于除以4。
value num 这里,num 指定要移位值value 移动的位数。也就是,右移运算符使指定值的所有位都右移num位。
&,按Java语言规范定义,是位操作符号,进行按位与运算。float为单精度浮点数,是无法同byte,char,short,int,long这些整数进行位运算的。同理,double也不可。这是因为,浮点数的二进制表示方式不同于整数。
第一个:取反 第二个:左移,末尾补零。第三个:右移不符号位。第四个:右移补零。