C# 如何使用字节数组从字符串值中获得正确的输出十六进制值?

C# 如何使用字节数组从字符串值中获得正确的输出十六进制值?,c#,string,hex,bytearray,formatexception,C#,String,Hex,Bytearray,Formatexception,问题是我希望字节数组t存储精确的十六进制值 预期产出 string x = "0x65 00 0x94 0x0A"; byte[] t = x.Split().Select(s => Convert.ToByte(s, 16)).ToArray(); foreach (byte element in t) { Console.WriteLine(element); } 但我得到的是 它们的等价整数表示 0x65 0x00 0x94 0x0A 我也试过这个 101 0

问题是我希望字节数组t存储精确的十六进制值

预期产出

string x = "0x65 00 0x94 0x0A";

byte[] t = x.Split().Select(s => Convert.ToByte(s, 16)).ToArray();

foreach (byte element in t)
{
    Console.WriteLine(element);
}
但我得到的是 它们的等价整数表示

0x65

0x00

0x94

0x0A
我也试过这个

101

0

148

10 
但这会产生一个
FormatException

中发生类型为“System.FormatException”的未处理异常 mscorlib.dll

其他信息:输入字符串的格式不正确


有人能提供解决这个问题的方法吗?

Console.WriteLine(element.ToString(“X2”)@Steve Your comments提供输出,但仅限于Console.WriteLine。我想在转换后将十六进制值存储在字节数组中,但这仍然没有发生。您将十六进制值存储为一个字节。稍后将其作为整数查看。字节数组不关心如何输出其值。字节数组使用8位将其值存储在单个字节中,每个位的逻辑值为0或1。这一事实与十进制、八进制、十六进制或二进制形式的表示无关values@cost我的要求是,代码应该能够以十六进制形式将字符串中的十六进制值存储到*字节数组中。不应将其转换为十进制表示形式。因为这段代码是我的原始程序的一小部分,程序的其余部分要求输入作为十六进制值存储在字节数组中,而不是它们的等效整数。
string str = "0x6c";
byte temp2 = Convert.ToByte(str);
byte temp3 = Convert.ToByte(str,16);