以下是我在一份文档中所坚持的内容。


  数组的第一个char的最低3位表示是否
  是AB。如果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

10-04 15:04