1.基础知识
符号 | 描述 | 运算规则 | 实例 |
---|---|---|---|
& | 与 | 两个位全为1,结果为1.其余为0. | 0001&0001=1 0001&0000=0 000&000=0 |
| | 或 | 两个位都为0,结果才为0.其余为1. | 0001|0001=0001 0001|0000=0000 000|000=000 |
^ | 异或 | 两个位相同为0,相异为1 | 0001^0001=0000 0001^0000=0001 000^000=000 |
~ | 取反 | 0变1,1变0 | ~0=1 ~1=0 |
<< | 左移 | 各二进制位全部左移若干位,高位丢弃,低位补0 | 0001<<2=0100 表示0001左移两位,变成0100 |
>> | 右移 | 各二进制位全部右移若干位,对无符号数,高位补0,有符号数,右移补1 | 0100>>2=0001 表示0100右移两位,变成0001 |
2.基础操作
功能 | 示例 | 位运算 |
---|---|---|
去掉最后一位 | 0100变为0010 | x>>1 |
最后一位加一个0 | 0100变为1000 | x<<1 |
最后一位加一个1 | 0100变为1001 | x<<1+1 |
将最后一位变为1 | 0100变为0101 | x|1 |
将最后一位变为0 | 0101变为0100 (若最后一位为0则先加1再减1) | (x|1)-1 |
最后一位取反 | 0100变为0101 | x^1 |
******************** | **************************** | ******* |
从右数第k位变为1 | 0001变为1001,k=4 | x|(1<<(k-1)) |