午前問5
流れ図は、シフト演算と加算の繰り返しによって、2進整数の乗算を行う手順を表したものである。この流れ図中のa、bの組合せとして、適切なものはどれか。ここで、乗数と被乗数は符号なしの16ビットで表される。X、Y、Zは32ビットのレジスタであり、けた送りは論理シフトを用いる。最下位ビットを第0ビットと記す。
『情報処理過去問.com』からiPhoneアプリがリリースされました!!
正解
- ア
解説
ア~エに以下の値をそれぞれあてはめると
・X=011(2進数)=3(10進数)
・Y=011(2進数)=3(10進数)
・X=011(2進数)=3(10進数)
・Y=011(2進数)=3(10進数)
ア. | |
1.Yの第0ビットは1、(Z+X)→Z //Z=3 2.Xを1ビット左シフト //X=6 3.Yを1ビット右シフト //Y=1 4.(i+1)→i //i=1 5.Yの第0ビットは1、(Z+X)→Z //Z=9 6.Xを1ビット左シフト //X=12 7.Yを1ビット右シフト //Y=0 8.以後、Yの第0ビットはi>16になるまで0 9.加算なしでループ終了 10.Zを出力する //Z=9 | |
イ. | |
1.Yの第0ビットは1、(Z+X)→Z //Z=3 2.Xを1ビット右シフト //X=1 3.Yを1ビット左シフト //Y=6 4.(i+1)→i //i=1 5.Yを左にシフトすると第0ビットに0挿入 Yの第0ビットはi>16になるまで常に0 6.加算なしでループ終了 7.Zを出力する //Z=3 | |
ウ. | |
1.Yの第15ビットは0、加算なし 2.Xを1ビット左シフト //X=6 3.Yを1ビット右シフト //Y=1 4.(i+1)→i //i=1 5.Yを右にシフトすると第15ビットに0挿入 Yの第15ビットはi>16になるまで常に0 6.加算なしでループ終了 7.Zを出力する //Z=0 | |
エ. | |
1.Yの第15ビットは0、加算はなし 2.Xを1ビット右シフト //X=1 3.Yを1ビット左シフト //Y=6 4.(i+1)→i //i=1 5.Yの第15ビットは0、加算はなし 6.Xを1ビット右シフト //X=0 7.Yを1ビット左シフト //Y=12 8.Xが0なのでZは0のままループ終了 10.Zを出力する //Z=0 |