让我们获取一个位掩码状态字节数组:
char status[10];
现在,假设我们要从每个状态字节中取出第 3 位并将它们放入一个 int 中,其中 int 的 LSB 是 status[0] bit 3,接下来是 status[1] bit 3,等等。
int foobits = 0;
for( i = 0; i < 10; i++ )
{
foobits |= (( status[i] & 0x04 ) >> 2) << i;
}
我的问题是:有没有另一种方法来完成这个只涉及一个班次?
编辑:我正在尝试使用 foobits 来包含 status[i] bit #3s 的位数组。