次の流れ図は,シフト演算と加算の繰返しによって2進数の乗算を行う手順を表したものである。この流れ図中の a,b の処理の組合せとして,正しいものはどれか。ここで,乗数と被乗数は符号なしの 16 ビットで表される。 X,Y,Z は 32 ビットのレジスタであり,けた送りには論理シフトを用いる。
2進数の乗算は,シフト演算と加算を繰り返すことで行われる。
したがって、
a: | 乗数の下位の1ビットの値が0の場合は,被乗数の値を左に1ビットシフトし,次の値に進む。 | |
b: | 乗数の下位の1ビットが1の場合は,被乗数の値を足して,元の被乗数の値を左に1ビットシフトし,次の値に進む。 |
となる。よってアが正解である。