gpt4 book ai didi

delphi 到 C++ 构建器的转换

转载 作者:行者123 更新时间:2023-12-03 15:46:34 27 4
gpt4 key购买 nike

我有 Delphi 源代码,我按照这个 http://hscripts.com/tutorials/cpp/bitwise-operators.php按位运算符在C++ Builder中进行转换,但结果不同

Delphi 中的源代码

procedure TForm1.Button1Click(Sender: TObject)
var
tmp, dynamicINT : integer;
begin
dynamicINT := 42080;
tmp := ((dynamicINT shl 1) or (dynamicINT shr 31) and $7FFFFFFF);

Edit1.Text := IntToHex(tmp, 4);
end;

Delphi 结果:148C0 正确!

C++ Builder 中的源代码

void __fasctall TForm1::Button1Click(TObject *Sender)
{
int tmp = 0;
int dynamicINT = 42080;

tmp = ((dynamicINT << 1) || (dynamicINT >> 31) && 0x7FFFFFFF);
Edit1->Text = IntToHex(tmp, 4);
}

C++ Builder 结果:0001 ???

转换出了什么问题?

我正在使用 C++ Builder 6 和 Delphi 7

最佳答案

||&& 是 C++ 中的逻辑运算符,而不是位运算符。他们只返回真/假。对应的二元运算符是|&

尝试:

tmp = ((dynamicINT << 1) | (dynamicINT >> 31) & 0x7FFFFFFF);

关于delphi 到 C++ 构建器的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23753276/

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