基本情報のCASLIIの平成18年春の問13
基本情報のCASLIIの平成18年春の問13の問題です。
32ビットの2進数(被乗数)と15ビットの符号なし二進数(乗数)の乗算を行うプログラムなのですが、解説を読んでもわからない点があったので質問させていただきます。
32ビットの被乗数の方は上位16ビットと下位16ビットにそれぞれGR1,GR0に分けて格納しています。
ここで、GR1,GR0をGR3ビットだけ論理左シフトします。そうすると、上位16ビットの左端からGR3ビットはみ出します。解説のここまでは理解できたのですが、次からの文章が理解できませんでした。
「シフト前の下位(16-GR3)ビットがシフト後の上位(16-GR3)ビットとして残る。したがって下位語の上位GR3ビットを(16-GR3)ビット,つまりGR4ビット論理右シフトして,上位語の下位GR3ビットに転送する必要がある。」
というものです。
シフト前の下位(16-GR3)ビットというのはどこのことを指しているのか不明ですし、シフト後の上位(16-GR3)ビットも同様です。
また、なぜGR4ビット論理右シフトするとなぜ上位語に反映されるのかもわかりません。右シフトすれば上位語も右シフトされて反映下位から上位へビットが転送されないと思うからです。
ちなみに、GR3+GR4=16という関係を持っています。
それと、解説の画像は添付しておきます。
お礼
やはり間違いですよね! しかも、これは例題などではなく、本文の記述中の誤りみたいです。 結構、定評ある参考書らしいんですが… 間違えもあるということですね。 ありがとうございました。