ビットマスクされたステータス バイトの配列を取得してみましょう。
char status[10];
ここで、各ステータス バイトから 3 番目のビットを取り出して int に入れたいとしましょう。int の LSB は status[0] ビット 3、次は status[1] ビット 3 などです。
int foobits = 0;
for( i = 0; i < 10; i++ )
{
foobits |= (( status[i] & 0x04 ) >> 2) << i;
}
私の質問は、これを達成するための 1 つのシフトのみを含む別の方法はありますか?
編集: foobits を使用して、status[i] ビット #3 のビット配列を含めようとしています。