在单片机开发中常常会对某个引脚或者某个引脚组的电平进行操作,例如LED流水灯控制,而为了方便一次性操作但是又不影响其他位原本的状态,所以经常会用到C语言中一个小知识点,即位操作。
- &按位与运算
有0出0,全1才为1.适合用于给单片机IO口做清0(拉成低电平)的操作。
在实际应用中,例如需要把第x位清0,便可以用...& = ~ (1<<x);
把1左移x位,取反是为了不影响其他位原本的状态。
2.|按位或运算
有1出1,全0才为0.适合用于给单片机IO口做置位(拉成高电平)的操作。
在实际应用中,例如需要把第x位置1,便可以用...| = (1<<x);
3.^按位异或运算
相同为0,不同为1.适合用于改变单片机IO口上一个状态(低->高或者高->低)而不影响其他IO口的操作。
4.~按位取反
与之前状态相反,0->1或者1->0;
5.>>右移
6.<<左移
实际用例: