首页 > 解决方案 > C# - 如何将十进制转换为 2 的补码十六进制?

问题描述

我无法将十进制转换为其十六进制签名 2 的补码。我使用这个网站来检查我的转换是否正确,但似乎没有一个有效。

例子:

0002159721(十进制)转换为十六进制有符号 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

以下是快速表格网站的结果: 在此处输入图像描述

标签: c#hexdecimalconverterstwos-complement

解决方案


推荐阅读