关于C#:字符串到字节数组


String to byte array

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do you convert Byte Array to Hexadecimal String, and vice versa, in C#?
Convert hex string to byte array

我有一根这样的绳子:"0215000010000146DE6D80000000000000000003801030E9738"

我需要的是以下字节数组:02 15 00 01 00 00 14 6D E6 D8 00 00 00 00 00 00 00 00 38 01 03 0E 97 38(每对数字都是相应字节中的十六进制值)。

我知道如何转换吗?谢谢!!


1
2
3
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    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/>");
    }


您非常希望看到本页的第二个示例。重要的是:

1
Convert.ToInt32(hex, 16);

第一个参数是2个字符的字符串,指定十六进制值(例如"DE")。第二个参数指定从十六进制转换。

示例中没有显示将字符串拆分为两个字符段,但这对于您的问题是必需的。我相信它足够简单,你可以处理。

我在Google:"C# parse hex"上找到这个