C# 如何使用字节数组从字符串值中获得正确的输出十六进制值?
问题是我希望字节数组t存储精确的十六进制值 预期产出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
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);