• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ビット操作について)

ビット操作について

このQ&Aのポイント
  • ビット操作を使ってアイコンエディタの透過データを読み込む方法について質問です。
  • unsigned char型を使用し、freadで読み込んでいる透過データに対してビット操作を行いたいです。
  • 具体的には、マスクテーブル番号を読み込んだ後、その値をビットごとに分割してTransData配列に格納したいです。

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

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.1

質問文のプログラムだと、たとえばTrans=255の場合、Trans/128なら1になりますが、Trans/64は3になってしまいますよね。 1ビットずつ取り出したいのであれば、剰余を計算してTransの値を小さくしていく必要があります。 TransArray[7]=Trans/128; Trans%=128; TransArray[6]=Trans/64; Trans%=64;  ・  ・  ・ ビット操作をするのであれば除算などの算術演算子ではなく、素直にビット演算子を使ったほうがきれいに見えるようになると思います。 for(i=0; i< 8; i++){ TransArray[i] = Trans & 0x01; Trans >>= 1; }

HokUebun
質問者

お礼

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

関連するQ&A

専門家に質問してみよう