delphi到C builder的转换
发布时间:2020-12-15 09:06:59 所属栏目:大数据 来源:网络整理
导读:我在Delphi中有源代码我按照这个 http://hscripts.com/tutorials/cpp/bitwise-operators.php为按位运算符在C Builder中转换它,但结果是不同的 Delphi中的源代码 procedure TForm1.Button1Click(Sender: TObject)var tmp,dynamicINT : integer;begin dynamicI
我在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; 德尔福结果: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中的逻辑运算符,而不是按位运算符.它们只返回true / false.相应的二元运算符是|和& ;.
尝试: tmp = ((dynamicINT << 1) | (dynamicINT >> 31) & 0x7FFFFFFF); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |