qwordのバグと思われます

ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
返信する
メッセージ
作成者
H.K.

qwordのバグと思われます

#1 投稿記事 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
tak
記事: 162
登録日時: 2005年5月31日(火) 07:49

#2 投稿記事 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となっていることを確認しました。
シフト演算がうまく行われないようです。
山本
Site Admin
記事: 535
登録日時: 2005年5月30日(月) 15:08
連絡する:

#3 投稿記事 by 山本 »

ご報告ありがとうございます。QWord型に対するシフト演算での符号処理にバグを確認できました。次回のバージョンアップで改良します。
H.K.

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

#4 投稿記事 by H.K. »

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