【发布时间】:2011-09-10 18:05:31
【问题描述】:
我需要将十六进制值转换为十进制整数。有没有单位可以做到这一点?
在网上我找到了一些关于它的东西,但它对我没有多大帮助。我知道使用inline asm 可以将其表示为四个32 位Integer 的打包数组。我发现将 int32 或 int64 转换为 int128,反之亦然,但没有发现任何例如两个 int64 和执行 int128 的问题,我也发现在 asm 内联中搜索 emule div 运算符的问题,mul运算符和sum 运算符。
所以我问是否有人可以帮助我解决这个问题。我的目标是取一个十六进制字符串并将其转换为十进制,然后计算base 35(0..9,A..Z)中的等效值。
非常感谢。
【问题讨论】:
-
什么数据结构保存你的 128 位整数?
-
99% 确定他指的是 Base36。
-
(a) 关于数据结构,我发现:类型 Int128 = Int32 的打包数组 [0..3]。 (b) 对于基数 35,我的意思是从 0 到 9 的数字和从 A 到 Z 的字母。例如,我们有从 0 到 9 的数字和从 A 到 F 的字母。一般来说,我的意思是数字 x mod 35,其余从 0到 34,其中 34 例如代表 Z。(c)不,不是 base36,我的意思是 base35,但 base36 也没有太大变化;在我的情况下需要在 base35 工作。
-
也许可以试试支持任意大小整数数学的库,例如link。
-
0..9,a..z 为 36 位
标签: delphi math delphi-xe2