十进制整数转十六进制字符串

127

我需要将一个整型数转换成十六进制字符串。

使用 ToString("X") 或者 ToString("X2") 转换 1400 => 578,但是我需要的是 0578 格式。

有谁能提供一个 IFormatter 来确保字符串长度为 4 个字符吗?


2
请查看此处的数字格式链接 - Ariel
5个回答

191

4
不适合使用负数时,请使用“short”类型而不是“int”。 - Mauro Raymondi
10
打印一个 int32,应该使用 "X8",而不是 "X4"。如果你想使用 X4,则确保要使用 Int16。 - Nyerguds

21
尝试使用在C# 6中引入的C#字符串插值
var id = 100;
var hexid = $"0x{id:X}";

十六进制值:

"0x64"

1
太好了!我会添加 $"0x{id:X4}"; - Andrei Krasutski

18

3

之前的回答对于负数并不适用。请使用short类型代替int。

        short iValue = -1400;
        string sResult = iValue.ToString("X2");
        Console.WriteLine("Value={0} Result={1}", iValue, sResult);

现在的结果是FA88。

2

将整数转换为十六进制字符串

int num = 1366;
string hexNum = num.ToString("X");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接