C# 如何从整数中获取十六进制文字



有很多方法可以将整数转换为十六进制字符串,但是有没有办法将其转换为十六进制文字

string = z
integer = 122
hex = 0X7A

无论表示形式如何,整数都保持为整数。您可以将十六进制值直接分配给int。仅当您想要显示它或将其用作字符串时,表示形式才会有所不同:

int integer = 122;
int integer_in_hex = 0X7A;

对于显示,您可以使用格式字符串"X2"这意味着以十六进制显示长度为 2 个位置的 munber:

Console.WriteLine(integer_in_hex.ToString("X2"));
Console.WriteLine(integer.ToString("X2"));

输出是相同的:

7A 7A

有关更多信息,请阅读文档

您是否正在寻找字符串的转储(用十六进制值表示字符串中的字符(?像这样:

using System.Linq;
...
string test = "hello z";
// To dump
string dump = string.Join(" ", test.Select(c => $"0x{(int)c:X2}"));
// From dump
string restore = string.Concat(dump
.Split(' ')
.Select(item => (char)Convert.ToInt32(item, 16))); 
Console.WriteLine(dump);
Console.WriteLine(restore);

结果

0x68 0x65 0x6C 0x6C 0x6F 0x20 0x7A
hello z

最新更新