我从一些大数学中得到了一个奇怪的结果,不知道为什么我从 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