我如何移位,所以我只需要比较一个数字的前两位?假设我想比较10101011010
的最后两位,并确保它是10
。
我该怎么做?
如果要检查是否将某些位设置为整数,则可以使用二进制and
运算符(&
)和掩码。在掩码中,设置要检查的位,然后使用此掩码分隔要检查的位。
因此在您的示例中:
val = b10101011010
并且您要确保最后2位是10
:
y = b10 = 0x02 = 2
比起制作掩码,它选择最后2位:
mask = b00000000011 = 0x03 = 3
(我将使用十六进制表示法使之更清楚)
或者您可以使用位移:
mask = (0x01 << 0) | (0x01 << 1)
现在我们使用二进制and
运算符:
val = b10101011010
mask = b00000000011
& -----------------
res = b00000000010
->现在我们有兴趣的地方
并且我们将res
与您希望它们成为的值进行比较:
if (res == y)
// -> good
else
// -> bad