- ベストアンサー
シフト演算子
わたしの使用している参考書で 8ビットのデータを左に2ビットシフトすると、 1111 1111 ↓ 1111 1100 となるとあります。この場合、シフトした値が元の値の4倍になると勉強したのですが、実際には元の値より減っているように思えるのですが・・。教えてください。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
8bitの演算で足し算をするとき 1111 1111 + 0000 0001 ↓ 0000 0000 と言うように数が減っています。足し算をしたのにです。これは計算結果が8bitでは表現できずにあふれたためです。 質問文の内容もそれと同じです。同じシフトを16bitデータとして処理すると 0000 0000 1111 1111 ↓ 0000 0011 1111 1100 のように桁があふれなくなります。
その他の回答 (1)
- nagata20000
- ベストアンサー率50% (1/2)
回答No.1
-1がー4になったので元の値より減っててもOKです。
質問者
お礼
なるほど!よく考えればわかりました。初心者なので2進数に慣れていないくて。ありがとうございました。
お礼
桁あふれ・・そうですよね。勉強したはずなんですけど、すぐに思いつきませんでした。勉強不足でした。ありがとうございました。