《嵌入式LINUX与物联网软件开发 C语言内核深度解析》学习2——位操作

2019-07-12 16:11发布

位操作有哪些?

按位与&、 按位或|、 按位异或^、 按位取反~、 左移、 右移

位操作重要吗?

底层驱动基本上都是用C编写的,驱动之所以能操作硬件,是因为能实现对寄存器的控制,而控制寄存器,必须通过位操作的运算才能实现

按位取反(~)和非(!)得区别

非(!):如果非0则结果为0,如果为0则结果是1

置位和复位的宏定义

#define SET_BIT_N(x,n) ((x) | (1<<((n)-1))) #define CLR_BIT_N(x,n) ((x) & ~(1<<((n)-1)))