位运算 &(按位与) |(按位或) ^(按位异或)
位运算的数都以补码的方式参与运算。
1) 按位与“&”
只有对应的两个二进位均为1时,结果位才为1 ,否则为0
2) 按位或 “|”
只要对应的二个二进位有一个为1时,结果位就为1
3) 按位异或 "^"
当两对应的二进位相异时,结果为1
一. 求
short
x = -99
short y = 0xFF
x & y 得结果?
解:
x 的原码是:
1000 0000
0110 0011 说明:其中符号位"
1"表示为负数
x 的反码是:
1
111 1111
1001 1100 说明 : 符号位"
1"没有发生变化
x 的补码是:
1
111 1111
1001 110
1
说明 : 补码是在反码的基础上加1
y = 0xFF ,它的十进制值是255
y的原码是 : 0000 0000 1111 1111
y的反码是 : 0000 0000 1111 1111
y的补码是 : 0000 0000 1111 1111
1
111 1111
1001 110
1
0000 0000 1111 1111
&
--------------------------------
0000 0000 1001 1101 ====> 结果即等于157
二. 求
short x = -300
short y = 0xFF
x & y 得结果?
解:
x 的补码是:
1
111 1110 1101 0
100
y 的补码是 : 0000 0000 1111 1111
1
111 1110 1101 0
100
0000 0000 1111 1111
&
--------------------------------
0000 0000 1101 0100 ====> 结果即等于212