我在将十进制转换为其十六进制符号 2 的补码时遇到问题。我使用此 site 来检查我的转换是否正确,但似乎没有任何效果。
示例:
0002159721(Decimal) 转换为十六进制有符号 2 的补码时应为 0020F469
我能够使用此代码将十进制转换为十六进制。
string dec = "0002159721";
string hex = Convert.ToUInt32(dec).ToString("X"); //result: 20F469
现在,我很难获得 2 的补码。这是我目前所拥有的。
uint intVal = Convert.ToUInt32(dec, 16);
uint twosComp = ~intVal + 1;
string h = string.Format("{0:X}", twosComp);
string h1 = twosComp.ToString("X"); // result: FFDF0B97