我有
#define MS 0x0100|0x011
我需要检查MS中存在的0x011。我使用MS & 0x011
,它给出了存在的值。但是idMS & 0x10
也给出了真值,我需要它作为伪
(value & mask) != 0
:集合mask
位中的是否至少有一个也设置在value
中
(这就是value & mask
在布尔上下文中的含义。((value & mask) == mask
:所有的集合mask
位是否也设置在value
中
也就是说,第一个类似于";或";第二个类似的";和";。
(已编辑(你需要
((MS) & 0x11) == 0x11
感谢罗的评论
0x0100 | 0x011
将产生0x111
,这将导致0x1, 0x10, 0x100, 0x11, 0x110 and 0x111
的所有&
测试以评估true
。
您需要直接测试您的值,并且将无法使用您的#define
。