投稿する

大滝本  4.12 [5319]

 まきさん(No.1) 
4.12のトレースをやってみました
5*3=15の2進数の乗算

x←00000101 (3)
y←00000011 (5)
z←00000000
i←1
if((yΛ00000001)= 00000001)
   
  00000011
  00000001
-----------
  00000001

z←z+x
 00000000
+00000101
---------
 00000101

endif
x←x<<1
00001010

y←y>>1
00000001

i←i+1
2  1

while(i<=4)
      2

if((yΛ00000001)= 00000001)
y 00000001
  00000001
----------
  00000001
z←z+x
 00000101
 00001010
---------
 00001111

x←x<<1
00001010
y←y>>1
00000000
i←i+1
3  2
while(i<=4)
      3
if((yΛ00000001)= 00000001) 不成立
 00000000 
 00000001
----------
 00000000

return z(00001111)
という解釈でしょうか
だから
a yΛ0000000 
b y←y>>1
となるわけでしょうか
2024.02.17 18:22
 まきさん(No.2) 
すみません
x←00000101 (5)
y←00000011 (3)
です
2024.02.17 19:12
jjon-comさん(No.3) 
FE ゴールドマイスター
ループカウンタ i が1,2,3,4と変化しますから、
次のif文は

if((yΛ00000001)= 00000001) 成立
if((yΛ00000001)= 00000001) 成立
if((yΛ00000001)= 00000001) 不成立
if((yΛ00000001)= 00000001) 不成立★

と4回実行されます。No.1のトレースでは ★で示した4回目が抜けています。
2024.02.17 21:47
 まきさん(No.4) 
>jjon-comさん
ありがとうございます。4回目が抜けてました。
2024.02.18 10:12
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop