将十六进制值的字符串转换为字节数组

时间:2014-04-22 17:34:42

标签: c# string bytearray

我有这个:

string x = "0X65 00 0X94 0X81 00 0X40 0X7E 00 0XA0 0XF0 00 0X80 0X2C 00 0XA9 0XA";

我想这样:

byte[] x = {0X65, 00, 0X94, 0X81, 00, 0X40, 0X7E, 00, 0XA0, 0XF0, 00, 0X80, 0X2C, 00, 0XA9, 0XA};

当我尝试类似的事情时:

string[] t = x.split(' ');
byte[] byte = new byte[t.Legnth];
for (int i = 0; i < byte.Length; i++)
            {
                byte[i] = Convert.ToByte(t[i]);
            }

将字节编码为其他值。我不熟悉字节格式,我只是试图直接从一个由空格分隔的字节串转到将它们放在数组中。

1 个答案:

答案 0 :(得分:16)

来自Microsoft网站:Convert.ToByte Method (String, Int32)

  

将指定基数中的数字的字符串表示形式转换为   等效的8位无符号整数。

在这种情况下,您需要告诉 ToByte 方法转换base 16

中的字符串
byte[] t = x.Split().Select(s => Convert.ToByte(s, 16)).ToArray();
相关问题