位运算符:
&: 3&4 = 0;
计算方式:(&有假则假,1代表真,0代表假,就是有0则0);
00000011
00000100
-----------
00000000
|:3|4 = 7;
计算方式:(|有真则真,1代表真,0代表假,就是有1则1);
00000011
00000100
---------
00000111
^: 3^4: = 7;(在位运算中与|同理)
00000011
00000100
-----------
00000111
~:~-7 = 6;(连符号位在内,把得到的补码取反);
10000111 -7的原码
11111000 -7的反码
00000001
~ 11111001 -7的补码
----------
00000110 6
<<:空位补0,被移除的高位丢弃(左移运算,相当于乘法运算)
举例:
4<<2;(4X2^2)=16;
000000100 4
00 000010000 16
>>:被移位的二进制最高位是0,右移后,空缺位补0;
最高位是1,最高位补1。(右移运算相当于除法运算)
举例:
4>>2;(4/2^2)=1;
000000100 4
000000001 00 1
>>>:
-7>>>2;被移位二进制最高位无论是0或者是1,空缺位都用0补。
10000000 00000000 00000000 00000111 -7
11111111 11111111 11111111 11111000 -7的反码
+ 00000000 00000000 00000000 00000001
---------------------------------------------
00111111 11111111 11111111 11111110 01
|