&与、|或、^异或、~取反、<<左移、>>右移、 >>>无符号右移
&:有0则0####
例:6&2
6二进制:110
2二进制:10
110
010
010:结果
6&2=2
|:有1则1####
例:6|2
6二进制:110
2二进制:10
110
010
110:结果
6&2=6
^:相同则0,不同则1####
例:6^2
6二进制:110
2二进制:10
110
010
100:结果
6&2=4
~:按位取反####
例:~6
6二进制:110
00000000 00000000 00000000 00000110
取反11111111 11111111 11111111 11111001补码运算取原码
- 00000000 00000000 00000000 00000001
反码11111111 11111111 11111111 11111000
原码10000000 00000000 00000000 00000111
10000000 00000000 00000000 00000111=-7
所以~6=-7
<<:左边最高位丢弃,右边补齐0
例:12<<1
00000000 00000000 00000000 00001100
左移(0)0000000 0000000 0000000 00011000
0000000 0000000 0000000 00011000=24
12<<1=24;
>>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
例:12>>1
00000000 00000000 00000000 00001100
右移 000000000 00000000 00000000 0000110(0)
000000000 00000000 00000000 0000110=6
12>>1=12;
>>>:无符号右移 无论最高位是0还是1,左边补齐0
例:12>>>1
00000000 00000000 00000000 00001100
右移 000000000 00000000 00000000 0000110(0)
000000000 00000000 00000000 0000110=6
12>>>1=12;
-12>>>1
原码10000000 00000000 00000000 00001100
反码11111111 11111111 11111111 11110011
补码11111111 11111111 11111111 11110100
无符号右移01111111 11111111 11111111 11111010(0)
01111111 11111111 11111111 11111010=2147483642
-12>>>1=2147483642
原码、反码、补码:http://www.jianshu.com/p/a22d08bf525f
网友评论