JavaSE---位运算符
1、Java支持的位运算符有7个:
&:按位与 【2个相同取相同、2个不同取0】
|:按位或 【2个相同取相同、2个不同取1】
~:按位非
^:按位异或 【2个相同取0、2个不同取1】
<<:左位移运算符 将二进制码整体左移指定位数,左移后空出来的位以0补充
>>:右位移运算符 将第一个操作数的二进制码向右移指定位数,左边空出的以0补充(如果原来的操作数为正数,左边以0补充;如果是负数,左边以1补充)
>>>:无符号右位移运算符 将第一个操作数的二进制码向右移指定位数,左边空的以0补充
2、
3、案例:
1.1 按位与:
5&9
0101 ---5
& 1001 ---9
0001 ---1
1.2 按位或:
5|9
0101 ---5
| 1001 ---9
1101 ---13
4、二进制数(计算机采用二进制的补码进行计算)
1、最高位为符号位,0表示正、1表示负,其余位表示数值大小
2、原码、反码、补码
1.1 正数的原码、反码、补码 都一样;
1.2 负数的反码:
最高位不变、其余按位取反; eg: 原码为:10100000 反码为:11011111
负数的补码:
最高位不变、其余按位取反,再+1 eg: 第一步,原码为:10100000;第二步,最高位不变取反:11011111;第三步,加一得补码:11100000