字符串到字节数组

本文关键字:数组 到字节 字符串 | 更新日期: 2023-09-27 18:12:08

可能重复:
在C#中,如何将字节数组转换为十六进制字符串,反之亦然
将十六进制字符串转换为字节数组

我有一根这样的绳子:"021500010000146DE6D800000000000000003801030E9738">

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

你知道我该如何转换吗??谢谢

字符串到字节数组

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);

您非常希望第二个示例出现在这个页面上
重要的部分是:

Convert.ToInt32(hex, 16);

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

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

我在Google: "C# parse hex"

中发现了这一点
    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/>");
    }