<<
<<(左移位运算):其实就是乘以2的移动的位数次幂。 例如 3<<2 相当于3*2(2)=12
<<(左移位运算) 后在空出来的最低位位置补0
>>
>>(右移位运算):其实就是除以2的移动的位数次幂。例如 6>>2 相当于6/2(2)=1 [整数相除取整]
>>(右移位运算) 后在空出来的最高位位置补什么由原有数据的最高值而定:
如果最高位为0,右移后,用0补空位。
如果最高位为1,右移后,用1补空位。
>>>
>>> (无符号右移):其实就是除以2的移动的位数次幂。例如 6>>>2 相当于6/2(2)=1 [整数相除取整]
>>>(无符号右移):无论最高位是什么,右移后,都用0补。
&
&(与运算): 先把数字转换为它相对应的二进制数,0视为false,1视为true,进行逻辑与(&)的运算。
true (1)& true(1) =true(1);
true(1) & false (0)=false (0);
false(0) & true(1) =false(0) ;
false(0) & false(0) =false (0);
总结:只要两边的boolean表达式结果,有一个位false(0),那么结果就是false(0),只有两边都为true(1),结果为true(1)。
|
|(或运算): 先把数字转换为它相对应的二进制数,0视为false,1视为true,进行逻辑或(|)的运算。
true (1)| true(1) =true(1);
true(1) | false(0) =true (1) ;
false(0) | true (1)=true (1);
false(0) | false(0)=false (0);
总结:只要两边的boolean表达式结果,有一个位true(1) ,那么结果就是true(1) ,只有两边都为false(0),结果为false(0)。
^
^(异或运算):先把数字转换为它相对应的二进制数,0视为false,1视为true,进行逻辑异或(^)的运算。
true(1) ^ true(1) =false(0) ;
true(1)^ false(0) =true(1) ;
false(0) ^ true(1) =true(1) ;
false(0) ^ false(0) =false(0) ;
总结:两边相同结果false(0),两边不同结果true(1)。
用途:一个数异或同一个数两次,结果还是它本身。(可用于加密和解密)
例如:7^4^4=7;
~
~(反码):先把数字转换为它相对应的二进制数,进行 取反 。