我可以在 32 位机器上添加 2 个 64 位数字吗

Can I add 2 64 bit numbers in a 32 bit machine

我在面试中被问到这个问题,我最初的感觉是每个 64 位数字将存储在两个 32 位内存位置,然后系统可以根据其 Endian 规则进行正常的加法运算。但是我没有得到确认我的答案是否正确,我一直有疑问。我知道这可能是非常基本的,但我需要知道。谢谢

我的答案是:

2 个数相加最多可以得到 aximu, number 的 2 倍。因此,将 2 个 32 位数字相加最多只能得到一个 33 位数字。使用 cpu 的溢出标志可以使用第 33 位。通过首先添加最高有效的 32 位,然后再添加最低有效的 32 位,并检查溢出位以将 1 添加到最高有效的 32 位部分。

这是否回答了您的问题?

如果你没有溢出位,那你得先把最低的31位加在一起,然后你可以检查2^31处是否溢出*。然后你正确地设置了那个位。然后你把最高32位加在一起,如果在*中溢出就加1。最高 32 位溢出是可以的,并且可以很好地处理二进制补码运算。