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にすると-になるので
どうやら先頭ビットが符号になっているみたいでした。