这是检查某些变量中是否设置了位并将它们存储在另一个变量中的正确方法吗?只需忽略变量名,image []和掩码变量为1个字节,first_hline_first_row和second_hline_first_row为2个字节。
for(i=0; i<16; i++){
if(image[i] & mask1) first_hline_first_row |= (1<<i);
else first_hline_first_row &=~ (0<<i);
if(image[i] & mask2) second_hline_first_row |= (1<<i);
else second_hline_first_row &=~ (0<<i);
}
答案 0 :(得分:0)
两件事:
image[i] & mask1
仅检查image[i]
和mask1
是否至少有一个共同位。这是你的意图吗?first_hline_first_row &=~ (0<<i);
什么都不做(~(0<<i)
就是全部)。 从评论中我猜这是你打算写的:
for(i=0; i<16; i++){
if(image[i] & mask1)
{
first_hline_first_row |= (1<<i);
}
else
{
first_hline_first_row &=~ (1<<i);
}
if(image[i] & mask2)
{
second_hline_first_row |= (1<<i);
}
else
{
second_hline_first_row &=~ (1<<i);
}
}