• ベストアンサー

基本情報技術者の試験について

論理シフトについてです 11101100を左に2ビットシフトすると桁あふれですよね?! 解説していただければありがたいです!

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

  • ベストアンサー
  • SPROCKETER
  • ベストアンサー率26% (2131/8006)
回答No.1

 ずいぶん昔から情報技術者試験で出題されている問題ですね。  8ビット単位であれば、次のようになります。 (1) C=0:11101100 (2) C=1:11011000 左へ1ビットシフト (3) C=1:10110000 左へ1ビットシフト  Cはキャリービットで、MSB(最上位ビット)からの桁溢れの値が入ります。よって、左へ1ビットシフトした段階で桁溢れが起こっています。  ローテイト命令でシフトした場合は、以下のようになります。 (1) C=0:11101100 (2) C=1:11011000 (3) C=1:10110001  Cはキャリービットで、MSB(最上位ビット)からの桁溢れが起こった値が入りますが、ローテイト命令ではシフト後に、キャリーの値がLSB(最下位ビット)に入りますので、こうなります。

参考URL:
http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97
bytebit8
質問者

お礼

ありがとうございます!! とても分かりやすかったです^^

関連するQ&A