我有一份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。