- ベストアンサー
ビット演算について
ビット演算ができないダメグラマーです。 10101010 C言語でバイト値の3ビット目の値が0の時は1に1の時は0(ビットを反転)にするにはどのように書くのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
★訂正。 ビットが1つずれていました。 誤⇒unsigned char mask = 0x01 << 3; 正⇒unsigned char mask = 0x01 << 2;
その他の回答 (1)
- Oh-Orange
- ベストアンサー率63% (854/1345)
回答No.1
★xor演算を使えば良い 10101010 ^ 100 ↓ unsigned char byte = 0xAA; unsigned char mask = 0x01 << 3; byte ^= mask; これだけ。 ※最下位ビットを1ビット目とする。
お礼
ありがとうございました。