ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
-
H.K.
#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倍弱改善されました。ありがとうございました。