二进制运算
1. 按位与&
两位全为1,结果才为1
用途:a. 清零。如果想将一个一个单元清零,即使其全部二进制为零,只要与一个各位都为0的数相与即可。
b. 取一个数的指定位,与一个数相与,指定位置的数为1,其余为0
2. 按位或|
只要有一个为1,结果就为1
用途:a. 将一个数的某些位置为1
3. 异或运算^
相应位相同为0,不同为1
用途:a. 使特定位反转 反转对应位为1,其余为0
b. 与0相异或,保留原值
c. 两个变量交换值
1. 借助第三个变量来实现
2. 利用加减法实现两个变量的交换
A=A+B;B=A-B;A=A-B;
3. 用位异或运算来实现,也是效率最高
原理:利用一个数异或本身等于0和异或运算符合交换率。
A=A^B;B=A^B;A=A^B;
4. 取反运算~
0变1,1变0;
5. 左移运算<<
讲一个二进制数左移(左边二进制位丢弃,右边补0),若左移时舍弃的高位不包括1,则没左移一位就相当于乘以2
6. 右移运算>>
将一个数的各二进制位全部右移,正数左补0,负数左补1,右边丢弃。操作数每右移一位,相当于该数除以2
7. 无符号右移运算>>>
将一个数的各二进制位全部右移,,右移后空出来的位用0填充。