カレッヂ |
質問者 kmk_loc
投稿日 7/22(火) 18:47:01
はじめまして。いつも拝見させてもらってます。 今、私は1文字(asciiコード)のデータ8ビットを、 上位4ビットと下位4ビットに分けようと頑張っているのですが、 うまく行きません。 例) 0x41(01000001) ---> 0x08(0100) と 0x01(0001) 上位4ビットについては、 $bin_data >> 4; と右にシフトしてやることで実現できたのですが、 下位4ビットがどうして良いのか分かりません。 一応 $bin_data << 4; $bin_data >> 4; な感じで、左にシフトさせてから元に戻せば 良いかとも思いましたが、変な値が帰ってくるだけでした。 何か良い案があれば、教えてください
プロバイダ参照: |
回答者 まさ
[削除]
投稿日 7/22(火) 20:04:07
マスク処理をすればいいでしょう。 データが 1011 0110 でマスクデータを 0000 1111 としてこのANDをとれば 0000 0110 とデータの下位4ビットが取り出せます。 マスクデータを 1111 0000 として同じくANDをとれば 1011 0000 で右に4ビットシフトさせれば上位4ビットを取り出せます。 |
質問者 kmk_loc
[削除]
投稿日 7/28(月) 14:27:48
お返事ありがとうございます! 早速試してみたところうまく行きました。 丁寧に解答していただいて本当にありがとうございました。 又よろしくお願いします |
このページは終了したので返信(回答)は書きこめません
Web裏技 |