-3

私はこのバイトを持っています:10111011そして私は2つのニブル(msbとlsb)に分割したいです。
その後、lsb から最後の 2 ビットを取得したい (だから から取得したい11) 1011
私はそれを知っています:私は msb (1001)

を取得します 私は lsb (1011) を取得しますlsbから取得するにはどうすればよいですか?10011011 >> 4
10011011 & 0xf

111011

4

3 に答える 3

3

全く同じで:bits = lsb & 0x03

于 2013-07-04T10:25:33.557 に答える
0

あなたがするだろう:

foo & 0x03

fooマスクしたいビットパターンはどこにありますか。

于 2013-07-04T10:32:26.537 に答える
0

最初の 2 ビットのビットマスクは 3 なので、単純に次のように使用します。

int val = x & 3;

ビットはすでに適切な位置にあるため、シフト演算子は必要ありません。

上記の値の場合はそうです。

val = (x >> 4) & 3;
于 2013-07-04T10:26:29.393 に答える