gpt4 book ai didi

c++ - 32 位机器上的 long long int

转载 作者:IT老高 更新时间:2023-10-28 23:09:23 30 4
gpt4 key购买 nike

非常简单的问题,我读到 GCC 支持 long long int 类型。但是,当 CPU 只有 32 位宽时,如何使用它进行数学运算呢?

最佳答案

编译器将综合使用多条 CPU 指令来执行运算的数学运算(或使用函数调用)。例如,加法操作将添加 long long 值的低位组件(低位字),然后将该操作的进位输入到高位的加法操作中long long的单词。

所以下面的C代码:

long long a;
long long b;
long long c;

// ...
c = a + b;

可能由如下所示的指令序列表示:

mov eax, [a.low]   ; add the low order words
add eax, [b.low]

mov edx, [a.high] ; add the high order words,
adc edx, [b.high] ; including the carry

mov [c.low], eax
mov [c.high], edx

如果您考虑一下,在 long long 出现之前很久,8 位和 16 位系统的编译器就必须对 16 位和/或 32 位值执行此类操作。

关于c++ - 32 位机器上的 long long int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3072444/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com