返信先: P42 過去問題 論理シフトの解き方

#1031
nobody
ゲスト

テキストの説明不足もあると思いますが、シフト演算では、先ずビット数を定義します。
分かりやすく表現すれば、何桁の電卓を使うことにするね!ってことです。
図では「0111000000」ではなく、「0111.000000」となっていますよ?

先ず、シフト演算を行う上で、計算機の仕様を決めなければいけません。
・10ビットでシフト演算すると決めたということ。
・この10ビットの内、(整数部)4ビット(小数部)6ビットと決めたということ。
これに、10進数の7を表現した時、
(整数部)0111 ← 空欄は0で埋める
(小数部)00000 ← 空欄は0で埋める
以上より、「0111.000000」と表現されたということです。
この過程の説明がないので、分かりずらいのだと思います。

そして、除算は右シフトなので、
2の-5乗で、5ビット右シフトということです。