【发布时间】:2016-06-08 09:49:16
【问题描述】:
我正在寻找一种使用 32 位系统将 64 位数字转换为字符串(也可能反过来)的方法。我不是要代码,只是要一些想法。
【问题讨论】:
-
这会给你一些想法 = stackoverflow.com/questions/30243848/… 。它是为 16 位和 32 位制作的,您将其修复为 64 位。尝试一下,如果您有问题,请发布您的代码,我们会为您提供帮助。
-
您的 64 位数字到底是多少?如果它在
rax或其他一些 64 位寄存器中,则无法使用纯保护模式指令集访问高 32 位。 -
@JoseManuelAbarcaRodríguez 我不熟悉这种组装方式。我在 ubuntu 上使用 AT&T 语法。我知道转换其他尺寸很热,我对 64 位数字的困扰是如何组合它的两个 32 位部分(更高和更低)得到原始的 64 位数字。
-
@Olipro 例如,我可以将我的 64 位数字作为
.quad类型变量,然后将低 32 位存储在%eax中,将高 32 位存储在%edx中(这就是 at&t 语法) -
您可以使用重复减法,因为它很容易移植到任何大小。见
sub和sbb。