我有两个字节,我设置不同的位,以获得不同的组合.例如,字节1位7和字节2位1,位2使组合设备准备就绪.现在,我创造了面具
#define C1_device_ready (0x80 | 0x100 | 0x200)
Run Code Online (Sandbox Code Playgroud)
然后我读取数据并尝试比较.我可以做1个字节(data [0]&mask == mask).但是如何计算C1_device_ready掩码,其中有两个字节,data [0]和data [1].是否可以轻松实现,或者我应该仅在单字节中进行屏蔽.:: added :: data是unsigned char数据[2]
如果data是一个数组unsigned char,你可以测试
if ((data[0] & mask) == (mask & 0xFF) && (data[1] & mask) == ((mask >> 8) & 0xFF))
Run Code Online (Sandbox Code Playgroud)
或者将两者合并data[i]并检查
if (((data[0] | (data[1] << 8)) & mask) == mask)
Run Code Online (Sandbox Code Playgroud)