如何检查是否设置了值

if (A)    Indicator |= 0x10;
if (B)    Indicator |= 0x04;
if(Indicator ) ??

在这里,如果我要检查指标是否具有值0x10,在某些情况下指标将具有值0x100x04。我需要检查0x10是不是

最佳答案

检查(Indicator & 0x10)是否等于0x10或其他。如果为0x10,则该位(或多个位)为非零(未设置),则未设置该位。这是因为&将和变量的每个位一起使用,因此与0x10(或任何其他整数,称为MASK)进行ANDing意味着iff Indicator在该ANDed整数(1)的每个位置都具有一个MASK,结果将与ANDed整数(MASK)。

10-08 02:09