6种位运算操作
&:按位 与 and
|:按位 或 or
^:按位 异或 xor
~:按位 取反 not
<<:左移
>>:右移
1.按位 与 &
原理:都为1结果为1,否则为0
用途:将字节中的某一位或某几位设置为0。同时不影响其他位的操作
和0xFFFF与操作 不改变原来数据
Eg:16位,和0x0FFF操作 最高位置为0
2.按位 或 |
原理:都为0时输出0,否则输出1
用途:将字节中的某一位或某几位设置为1。同时不影响其他位的操作
和0x0000 或操作 不改变原数据
Eg:16位,和0xF000操作 最高位置为1
3.异或 ^
原理:不同输出1,相同输出0
用途:1.使特定位取反
2.交换两个变量值
异或操作 与 0xFFFF不改变原数据
4.取反操作~
原理:1变为0,0变为1
用途:正数,源码、补码、反码一致
负数,补码=源码符号为不动,取反+1
一个数a取反 = -(a+1)
5.左移和右移:
用途:用于整数的快速乘除
左移:移动n位 乘2的n次方
右移:移动n位 除2的n次方