首页 > 解决方案 > 转换为 Hex 2s 补码

问题描述

我得到一个这样的整数:

int myInteger = 1234;

我想得到的是匹配的十六进制签名的 2s 补充应该类似于这个:

string hexValueAsString = "052C";

我尝试使用该.ToString("X2")方法不起作用,因为我认为它会。

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

我到底做错了什么?任何帮助将非常感激。

> 代码游乐场

标签: c#integerdata-conversion

解决方案


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

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

如果没有,你可以这样做:

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

推荐阅读