字符串到字节数组

时间:2011-10-24 16:31:08

标签: c#

  

可能重复:
  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(每对数字是相应字节中的十六进制值)。

关于如何进行此转换的任何想法?谢谢!

3 个答案:

答案 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/>");
    }