• ベストアンサー

ビット演算について

ビット演算ができないダメグラマーです。 10101010 C言語でバイト値の3ビット目の値が0の時は1に1の時は0(ビットを反転)にするにはどのように書くのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★訂正。  ビットが1つずれていました。  誤⇒unsigned char mask = 0x01 << 3;  正⇒unsigned char mask = 0x01 << 2;

quest111
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★xor演算を使えば良い  10101010 ^ 100  ↓  unsigned char byte = 0xAA;  unsigned char mask = 0x01 << 3;    byte ^= mask;  これだけ。 ※最下位ビットを1ビット目とする。