通过串口我读取一个协议包,该包中有几个字节是我要用的信息,这几个字节的位来确定一些开关量的状态,基本上是一个字节8隔开关量,也就是说一位对应一个开关量。不知道VC或者C中有没有读取字节中某些位的函数,谢谢!
------解决方案--------------------------------------------------------
| ^ &
------解决方案--------------------------------------------------------
- C/C++ code
#define GETBYTE(v,n) ((v&(1<<n))>>n)#define SETBYTE(v,n) (v=(v|(1<<n))#define ISSETBYTE(v,n) (v&(1<<n))
------解决方案--------------------------------------------------------
宏的名字改为:
#define GETBIT(v,n) ((v&(1<<n))>>n)
#define SETBIT(v,n) (v=(v ¦(1 < <n)))
#define ISSETBIT(v,n) (v&(1<<n))
更好,你也可以直接用&运算符,效率更高,不过用宏方便,可读性好。