有很多方法可以将整数转换为十六进制字符串,但是有没有办法将其转换为十六进制文字?
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