問2流れ図は,シフト演算と加算の繰り返しによって,2進整数の乗算を行う手順を表したものである。この流れ図中のa,bの組合せとして,適切なものはどれか。ここで,乗数と被乗数は符号なしの16ビットで表される。X,Y,Zは32ビットのレジスタであり,けた送りは論理シフトを用いる。最下位ビットを第0ビットと記す。正解を表示するア解説XおよびYにトレースが簡単な数値を設定して、出力Zが適切な値かどうかで正しい組合せを導きます。ここではX=3,Y=3とすることにします。X,Yともにビット表記では011です。あるビット列を左に1ビットシフトすると2倍、右に1ビットシフトすると1/2したのと同じになります。//i=1Yを左にシフトすると第0ビットに0が挿入される。//i=1Yを右にシフトすると第15ビットには0が挿入される。//Z=0唯一、正しい結果を得られる「ア」の組合せが適切とわかります。このアルゴリズムを一言で言うならば、Yの第nビットが1であれば、ZにX×2nを加算する処理を繰り返すものということになります。おまけとしてこのアルゴリズムをJavaScriptで実装したソースプログラムを掲載します。実行環境で数値やシフト部分を変えてお試しください。Reserved.▲Pagetop。