可能重复:
How do you convert Byte Array to Hexadecimal String, and vice versa, in C#?
我有一个输入字符串“AA 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF”的文本框,我将它拆分为String [],但现在我必须得到一个字节[]喜欢这样:
byte[] b6 = new byte[20] {0xAA,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88 ,0x99 ,0xAA ,0xBB,0xCC ,0xDD ,0xEE,0xFF};
有人可以建议我怎么做。我尝试使用Convert.ToByte
,但我收到错误,无法将String
转换为byte.
并且我不必将值转换为十六进制,只是为了添加{{1}在每个字节前面并添加到字节数组。
答案 0 :(得分:2)
string input = "AA 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF";
byte[] bytes = input.Split().Select(s => Convert.ToByte(s, 16)).ToArray();
答案 1 :(得分:1)
尝试
int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
对于字符串的每个splitted元素,并将其添加到List。
List<Byte> bytes = new List<Byte>();
foreach (var splittedValue in hexString.Split(' ')) {
bytes.Add(int.Parse(splittedValue, System.Globalization.NumberStyles.HexNumber));
}
return bytes.ToArray();
答案 2 :(得分:0)
您可以使用byte.Parse
:
byte[] bytes = str.Split().Select(s => byte.Parse(s, NumberStyles.HexNumber)).ToArray();
要以十六进制表示形式显示字节,请使用ToString覆盖:
foreach (var b in bytes)
{
Console.WriteLine("0x{0:X}", b);
//or Console.WriteLine("0x" + b.ToString("X"));
}
您还可以在string.Format
。
答案 3 :(得分:-2)
您可以使用tostring功能