C# - 如何将十进制转换为 2 的补码十六进制?

时间:2021-04-12 09:25:03

标签: c# hex decimal converters twos-complement

我在将十进制转换为其十六进制符号 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

这是来自快速表站点的结果: enter image description here

0 个答案:

没有答案