转换为十六进制2s补码

时间:2019-10-28 07:19:47

标签: c# integer data-conversion

我有一个这样的整数:

int myInteger = 1234;

我想要得到的是匹配的十六进制有符号2s补码,它应该类似于以下内容:

string hexValueAsString = "052C";

我尝试使用.ToString("X2")方法无法正常工作。

uint myInteger = 1234;
string hexValueAsString = myInteger.ToString("X2"); // 52C instead of 052C

我到底在做什么错? 任何帮助将不胜感激。

> Code Playground

1 个答案:

答案 0 :(得分:0)

如果您事先知道所需的位数,则可以明确指定:

string hexValueAsString = myInteger.ToString("X4");

否则,您可以执行以下操作:

int myInteger = 1234;
string hexValueAsString = myInteger.ToString("X");
if (hexValueAsString.Length % 2 == 1)
    hexValueAsString = hexValueAsString.Insert(0, "0");