ページ 11

qwordのバグと思われます

Posted: 2005年7月05日(火) 06:11
by H.K.
次のプログラムでiが0から64まで常に-1が表示されます。qwordのバグではないでしょうか?
#console
dim a as qword,i as dword
for i=0 to 64
a=&HFFFFFFFFFFFFFFFF
a=a>>i
print a
Next
input a

Posted: 2005年7月06日(水) 16:09
by tak
H.K.さんのコードに少し変更を加えて、こちらでも検証しました。

コード: 全て選択

Dim a As QWord, i As DWord
Dim QWArr(64) As QWord

a=&HFFFFFFFFFFFFFFFF
For i = 0 To 64
	QWArr(i) = a >> i
Next

Debug
ブレークポイントで配列の内容を表示したところ、すべての要素が&HFFFFFFFFFFFFFFFFとなっていることを確認しました。
シフト演算がうまく行われないようです。

Posted: 2005年7月06日(水) 23:22
by 山本
ご報告ありがとうございます。QWord型に対するシフト演算での符号処理にバグを確認できました。次回のバージョンアップで改良します。

山本様、修正を確認しました

Posted: 2005年7月15日(金) 22:11
by H.K.
Ver.4.03でバグの修正を確認しました。おかげさまで、qwordのshift演算が可能になりました。ただいま、activebasicで256ビットの秘密鍵方式の暗号プログラムを開発中です。その中で、256ビット同志の掛け算が必要になり、dwordを用いた掛け算をqwordを用いた掛け算に代えたところ、掛け算の実行速度が2倍弱改善されました。ありがとうございました。