- ベストアンサー
ビット演算子について
ビット演算子のことがよく分かりませんので、結果の求め方を教えてください。ちなみに16進数、2進数などは分かります。 〈例〉(1) 0xf0 & 0xaa (2)~0x55
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
& はAND演算で 0 & 0 → 0 0 & 1 → 0 1 & 0 → 0 1 & 1 → 1 になるつまり、両方が1の時1そうでない時0になる演算で (1)は、それを踏まえて 11110000(0xf0) 10101010(0xaa)なので、 10100000(0xa0)になります。 ちなみにこういう0xf0みたいなのをマスクという言い方をする場合があります。その部分だけ取り出すからです。(その部分以外を0にする) ~はNOT演算で 1 → 0 0 → 1 の様に、反対にする演算です。 それを踏まえて(2)は、 01010101(0x55) 10101010(0xaa)になります。
その他の回答 (2)
- kaZho_em
- ベストアンサー率50% (2950/5879)
(1) 0xf0 → 1111 0000 b 0xaa → 1010 1010 b 対応するビット毎にandを取る。 bit7 : 1 and 1 = 1 bit6 : 1 and 0 = 0 bit5 : 1 and 1 = 1 bit4 : 1 and 0 = 0 bit3 : 0 and 1 = 0 bit2 : 0 and 0 = 0 bit1 : 0 and 1 = 0 bit0 : 0 and 0 = 0 よって、結果は 0xa0 (2) 0x55 → 0101 0101 b ~ は補数を取る意。ビット毎に0、1を反転。 よって、結果は 1010 1010 b = 0xaa
お礼
ありがとうございました。とてもよく分かりました。
- mendokusa
- ベストアンサー率13% (359/2726)
この辺ですかね 2進数にバラして計算して下さい
お礼
ありがとうございます。早速、該当ページ見てみました。
お礼
ありがとうございました。とてもよく分かりました。