• ベストアンサー

CASLの問題

http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H11a2/pm10.html で被乗数を14ビットシフトの意味を理解できなく この問題を解けません どなたかご教授を

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

回答が付いてるみたいだから置いといて乗算のアルゴについて (CALSは、20年以上使った記憶が無いから回答も、よく理解が^^;) 例えば7×9で計算するとすると、7を9回ループさせる訳ではなくて 7=0000 0111 9=0000 1001 値を8ビットとして考えて、計算を16ビットを使った場合 > (9=0000 1001)を1bitづつ右にシフトして1ビット目検出  > | (7=0000 0111)を1bitづつ左にシフトして足すはずの値を算出 > ↓ ↓ 1 bit | 1 | 0000 0000 0000 0111 2 bit | 0 | 0000 0000 0000 1110 3 bit | 0 | 0000 0000 0001 1100 4 bit | 1 | 0000 0000 0011 1000 5 bit | 0 | 0000 0000 0111 0000 6 bit | 0 | 0000 0000 1110 0000 7 bit | 0 | 0000 0001 1100 0000 8 bit | 0 | 0000 0011 1000 0000 ------------------------------- で、(9=0000 1001)の1ビット目が1の場合のみ足し算すると・・・ 1 bit | 1 | 0000 0000 0000 0111 = 7 4 bit | 1 | 0000 0000 0011 1000 = 56 ------------------------------- 計 | | 0000 0000 0011 1111 = 63 と、なります 算数でnをm回足したものが掛け算ですが、そう言う計算ではなく もう少し先で習う掛け算を2進で行うのが回答だったと・・・ これだと、いくつ×いくつでもループ回数が固定され、レスポンスが一定になるというメリットがありますが、今は最初から乗算があるCPUが多いのであまり意味が無いですね;; で、書いている意味理解できそうです?

C_is_Best
質問者

補足

教えていただいたロジックは理解できますが 問題とむすびつかなくて?

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

#1です う~ん?ロジックからCASL文が作れないようなら、かなり厳しいかと・・・ > で被乗数を14ビットシフトの意味を理解できなく > この問題を解けません で、14ビットシフトではなく算術シフトの0~14の15ビットシフトじゃない? 15ビット目は符号ビットとして考えるから・・・ 値が入っている、0ビット~14ビットまでを演算してると言う話・・・

すると、全ての回答が全文表示されます。

関連するQ&A