Java位运算详解学习
运算符
运算符 | 含义 |
---|---|
& | 与 |
| | 或 |
~ | 取反 |
^ | 异或 |
<< | 左移位 |
>> | 右移位 |
>>> | 无符号右移位 |
& ~ | ^ 例子
A | B | A&B | A|B | A^B | ~A |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
0换false 1换true就是逻辑运算结果
&运算
12和8进行与(&)运算 相同:1 不同:0
第一行12 第二行8 第三行结果
|或运算
同与运算
不过有1为:1
没1 为:0
^异或运算
相同为:0
不同为:1
~取反运算
就字面意思 就取反
左移 <<
左移位运算符为«
,其运算规则是:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
例:
17<<1
0001 0001 --> 0010 0010
高位舍弃 低位补0即
图解 11向左移一位:
结果相当于十进制数乘2
右移>>
右位移运算符为»
,其运算规则是:按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。
图解 11向右移一位:
结果相当于十进制数除2取整
负数右移是低位移出(舍弃),高位的空位补1。
无符号右移>>>
不管正负都是按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。
推荐视频[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oYJ4bTgL-1677726739118)(null)]]
不管正负都是按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。
推荐视频位运算符详解