以下文字是我在一份文档中所坚持的内容。
The least significant 3 bits of the first char
of the array indicates whether it is A
or B
. If the 3 bits are 0x2
, then the array is in a A
format. If the 3 bits are 0x3
, then the array is in a B
format.
这是我一生中第一次接触到这种最低有效位的东西。在 StackOverflow 上搜索后,这就是我所做的:
int lsb = first & 3;
if (lsb == 0x02)
{
// A
}
else if (lsb == 0x03)
{
// B
}
这是正确的吗?在我继续之前,我想确保这是正确的方法(并避免以后把我的脚吹走)。
x
的最低有效 3 位是使用 x&7
获取的,这与您使用的 first & 3
不同。事实上,first & 3
将占用 first
的最低有效 2 位。
您应该将数字转换为二进制以理解为什么会这样:二进制中的 3 是 11
,而 7 是 111
。
我是一名优秀的程序员,十分优秀!