1

我有一个将 base10 转换为 bas32 的例程,有趣的是,当我使用在线转换工具仔细检查一些数字时,似乎存在问题。以下是一些数字和我的转换结果:

9990330227991015 = 8RU4S26R8F7
9990330227991016 = 8RU4S26R8F8
9990330227991017 = 8RU4S26R8F9

但是,所有 3 个号码都使用了几种在线工具(例如http://www.unitconversion.org/numbers/base-10-to-base-32-conversion.htmlhttp://www.kaagaard.dk/service/ convert.htm ) 返回 8RU4S26R8F8。我认为这可能是数字长度,但如果你更高或更低,转换确实会改变。

任何想法为什么应该这样?

4

2 回答 2

3

有趣的是,我刚刚发现了这篇文章,因为我刚刚调查了这个问题,我们在 Delphi 开发的软件的数字完全相同,因为客户在使用我们的转换工具后收到以下信息:-

9990330227991015 = 8RU4S26R8F8
9990330227991016 = 8RU4S26R8F8
9990330227991017 = 8RU4S26R8F8

你指的在线工具不正确,原因和我们工具不正确一样,基本不用浮点数,用64位整数处理大数更准确。。

修复程序即将交付给我们的客户...

于 2013-01-23T11:59:51.620 回答
1

似乎普遍的共识是,我查看的在线工具可能使用的是实数而不是 Int64。使用浮点数会产生上述错误结果。

于 2013-01-23T14:18:14.180 回答