可能重复:
How do you convert Byte Array to Hexadecimal String, and vice versa, in C#?
Convert hex string to byte array
我有一个这样的字符串: “021500010000146DE6D800000000000000003801030E9738”
我需要的是以下字节数组: 02 15 00 01 00 00 14 6D E6 D8 00 00 00 00 00 00 00 00 38 01 03 0E 97 38(每对数字是相应字节中的十六进制值)。
关于如何进行此转换的任何想法?谢谢!
答案 0 :(得分:5)
var arr = new byte[s.Length/2];
for ( var i = 0 ; i<arr.Length ; i++ )
arr[i] = (byte)Convert.ToInt32(s.SubString(i*2,2), 16);
答案 1 :(得分:1)
你非常想要这个page的第二个例子 重要的是:
Convert.ToInt32(hex, 16);
第一个参数是一个2个字符的字符串,指定一个十六进制值(例如"DE"
)
第二个参数指定从Base-16转换,即Hex。
示例中未显示将字符串拆分为两个字符的段,但是您的问题需要它。我相信它很简单,你可以处理。
我发现这是 Google: "C# parse hex"
答案 2 :(得分:1)
string str = "021500010000146DE6D800000000000000003801030E9738";
List<byte> myBytes = new List<byte>();
try
{
while (!string.IsNullOrEmpty(str))
{
myBytes.Add(Convert.ToByte(str.Substring(0, 2), 16));
str = str.Substring(2);
}
}
catch (FormatException fe)
{
//handle error
}
for(int i = 0; i < myBytes.Count; i++)
{
Response.Write(myBytes[i].ToString() + "<br/>");
}