位运算符
作者:互联网
位运算符
按位运算符
按位与(&):有0则0,同1为1
按位或(|):有1则1,同0为0
按位取反(~):1变0;0变1
按位异或(^):相同为0,不同为1
a | b | 按位与(a&b) | 按位或(a|b) | 按位取反(~a) | 按位异或(a^b) |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
移位运算符
-
左移位(<<)
(1)操作:将数据转为二进制(int 型32位)的数,将数左移,高位溢出舍弃,低位空位补0
(2)总结公式:左移几次就是该数据乘以2的几次方
(3)应用:可以完成2的次幂运算
-
右移位(>>)
(1)操作:将数据转为二进制(16位)的数,将数左移,低位溢出舍弃,高位空位补位
最高位补位:对于高位出现的空位,原来最高位是什么就用什么补,保证符号位不变
最高位是1用1补,最高位是0用0补(2)总结公式:右移几次就是该数据除以2的几次方
-
无符号右移位(>>>)
操作:与右移位相同
不同点:最高位补位时,无论原最高位是什么,都补0
注意
- 1:逻辑真 0:逻辑假
- byte与short是低精度的整型,不适用于做无符号右移,会产生溢出
标签:位是,左移,运算符,按位,最高,移位 来源: https://www.cnblogs.com/ekig/p/14731452.html