いくつかの大きな数学から奇妙な結果が出て、vb.netとpythonで異なる答えが得られる理由がわかりません。
クイックスニペットと結果は次のとおりです。
VB.NET
Dim MSB As UInt32 = 3067297518
Dim LSB As UInt32 = 1439785590
Dim sqln As UInt64 = MSB * (2 ^ 32) + LSB
Python:
sqln = msb * (2 ** 32) + lsb
Python Result: 13173942528351756918
VB RESULT: 13173942528351756288
注:sqlnをULongおよびDoubleとして宣言することも試みます(同じ回答)。MSBとLSBは両方のデバッガーで一致します-!! ??
何か案は?=+ありがとう
傑出したジョン-非常に雄弁で、うまくいきます!ちょっとしたフォローアップで、最後のピースの修正を提案できますか?私のsqlnをまっすぐにしたとしても、同じようなことが起こっていると思います:)
python says: = bdntyxtax2smq
vb.net says: = bfpuzytbx3s00
VB.NET
Dim sqlid As String = ""
Dim alphabet As String = "0123456789abcdfghjkmnpqrstuvwxyz"
For iCount = 0 To 12
sqlid = alphabet((sqln / (32 ^ iCount)) Mod 32) + sqlid
Next
Python:
for i in range(0, 13):
sqlid = alphabet[(sqln / (32 ** i)) % 32] + sqlid