当前位置: 代码迷 >> VC >> VC中有没有位的处理函数啊解决方法
  详细解决方案

VC中有没有位的处理函数啊解决方法

热度:7460   发布时间:2013-02-25 00:00:00.0
VC中有没有位的处理函数啊
通过串口我读取一个协议包,该包中有几个字节是我要用的信息,这几个字节的位来确定一些开关量的状态,基本上是一个字节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))
更好,你也可以直接用&运算符,效率更高,不过用宏方便,可读性好。
  相关解决方案