Dim a As QWordがInt64になっているかもしれない。

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: Dim a As QWordがInt64になっているかもしれない。

Dim a As QWordがInt64になっているかもしれない。

by YS » 2005年12月07日(水) 11:21

32bit*2の64bit計式で示されるファイル時間を強引に
32bitに圧縮しようとして気が付いたのですが、

#N88BASIC
Do
Qbit()
Dbit()
Sleep(INFINITE)
Loop


Sub Qbit()
Dim a As DWord
Dim b As DWord
Dim c As QWord
a=&HFFFFFFFF
b=&HFFFFFFFF
c=a
print a
print (c<<32 or b)
End Sub


Sub Dbit()
Dim a As Word
Dim b As Word
Dim c As DWord
a=&HFFFF
b=&HFFFF
c=a
print a
print (c<<16 or b)
End Sub


2つのDWordからQWordを作る関数がなかったので、
変な事をしてますが、このソースを実行すると、
Dbit()の表示は

65535
4294967295

で正常なのですが、Qbit()の表示が

4294967295
-1

となってしまいます。

また、QWord()のa=&HFFFFFFFFをa=&H7FFFFFFFにすると
表示は+ですが、a=&H8FFFFFFFにすると-になるので
どうやら先頭ビットが符号になっているみたいでした。

ページトップ