6.2.5 位运运算(最接近计算机底层的)
位与运算(&)
位或运算(|)
位异或运算(^)
位反码(~)
<<(左移)
>>(右移)
>>>(无符号右移)
位与运算(&)
有0则0(与逻辑运算符中&很像呀,有false则false)

位或运算(|)
有1则1(与逻辑运算符中|很像呀,有true则true)

位异或运算(^)
相同为0,不同为1(与逻辑运算符中^很像呀,相同为false,不同为true)

特点:一个数据对另一个数据位异或(^)两次,则值是此该数本身;

位反码(~)
非0则1,非1则0(与逻辑运算符中!很像呀,非false则true,非true则false)

<<(左移)
左移n位,空位补0,高位移除

(左移的结果 = 左移的数据x2的移位数次幂)即12=3*2(二进制)^2
>>(右移)
规则:左移n位,二进制的高位是0,则空缺位补0,二进制的高位是1则空缺位补1

(右移的结果 = 右移的数据/2的移位数次幂)即0=3/2(二进制)^2

>>>(无符号右移)
规则:右移n位,空缺位总是补0

位运运算练习:
(1)请实现2个整数变量的交换?

(2)请写出最有效的2*8的结果?
其实就是28的底层写法:8 = 2的3次幂,即2左移3个位置,22^3
网友评论