大滝本 4.12
まきさん
(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
となるわけでしょうか
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)
です
x←00000101 (5)
y←00000011 (3)
です
2024.02.17 19:12
jjon-comさん
★FE ゴールドマイスター
(No.3)
ループカウンタ 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回目が抜けています。
次の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日経過したスレッドへの投稿はできません。
広告