位操作 记住8421 即可
先将两个数据转化为二进制数,然后按位进行位操作和运算
1 位移
主要是指位左移和位右移
2 取反
即 位0变位1,位1变位0
3 位与
同为1结果为1,其它情况结果为0;
特别提醒:负数按补码形式参加按位与运算。
- 位与运算的特殊用途:
1.清零(将一个单元与0进行位与运算结果为零)
2.取一个数中指定位(例如取X=1010 1101的低四位 则将X&00001111得到0000 1101)。
4 位或
只要有一个是1结果为1,不然结果为0;
位或运算的特殊用途:
常用来对数据的某些位置1(例如将X=1010 1010的第四位置1,则将X |0000 1111得到1010 1111)
5 位异或
只要位不同结果为1,不然结果为0;
异或运算的特殊用途:
1.使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。
例:X=10101110,使X低4位翻转,用X ^0000 1111 = 1010 0001即可得到。
2.与0异或得到原值
例:X=10101110,用X^0=10101110
6 经常运用到的是移位 还有就是 置1和清零
这些内容在写驱动程序用得比较多
以上信息来源
1 韦东山老师的视频资料
2 https://blog.csdn.net/m0_37602175/article/details/72831779