以下是我在一份文档中所坚持的内容。
数组的第一个char
的最低3位表示是否
是A
或B
。如果3位是0x2
,则数组在A
中
格式。如果3位是0x3
,则数组为B
格式。
这是我一生中第一次接触到这些最不重要的东西。在StackOverflow上搜索后,这就是我所做的:
int lsb = first & 3;
if (lsb == 0x02)
{
// A
}
else if (lsb == 0x03)
{
// B
}
它是否正确?我要确保这是正确的方法(并避免以后再踩脚),然后再继续前进。
最佳答案
与使用的x
不同,x&7
的最低有效3位是使用first & 3
获取的。实际上,first & 3
将占用first
的最低2位。
您应该将数字转换为二进制以了解其原因:二进制中的3是11
,而7是111
。