gpt4 book ai didi

c++ - 在 ObjectPascal 中处理算术右移

转载 作者:行者123 更新时间:2023-11-30 02:49:09 24 4
gpt4 key购买 nike

在将一些 DSP C++ 代码转换为 ObjectPascal 时,我看到有很多符号整数上的“>>”运算符(正确的操作数始终为 1 或 2)。我知道 C++ 在有符号整数上执行算术右移,而不是 Pascal 中的逻辑右移。

目前,我正在用“div 2”或“div 4”命令代替这些 ASR 转换。是否有更好或更通用的方法来处理这些问题?

最佳答案

是的,假设左操作数是一个 32 位变量:

(x>>1)|0x80000000

(x>>2)|0xC0000000

如果你想要 x>>N 的一般情况:

(x>>N)|(((1<<N)-1)<<(32-N))

关于c++ - 在 ObjectPascal 中处理算术右移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21511998/

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