将byte []转换为在C#中的字符串中存储十进制值的字符串

时间:2014-03-04 10:15:33

标签: c#-4.0 string-conversion

如何将byte[]转换为string?我每次尝试都会得到

  

System.Byte []

而不是值。

另外,如何以十进制而不是十六进制获取值?

使用下面的代码我只能使用十六进制

string hex = BitConverter.ToString(data);

这是我的代码

static void Main(string[] args)
{
    Program obj = new Program();
    byte[] byteData;
    int n;

    byteData = GetBytesFromHexString("001C0014500C0A5B06A4FFFFFFFFFFFFFFFFFFFFFFFFFFFF");
    n = byteData.Length;

    string s = BitConverter.ToString(byteData);
    Console.WriteLine("<Command Value='" + s + "'/>");
    Console.WriteLine("</AudioVideo>");
    Console.ReadLine();
}

public static byte[] GetBytesFromHexString(string hexString)
{
    if (hexString == null)
        return null;

    if (hexString.Length % 2 == 1)
        hexString = '0' + hexString; // Up to you whether to pad the first or last byte

    byte[] data = new byte[hexString.Length / 2];

    for (int i = 0; i < data.Length; i++)
        data[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
    Console.WriteLine(data);
    return data;
}
输出应该是:

  

0 28 0 20 80 12 10 91 6 164 255 255 255 255 255 255 255 255 255 255   255 255 255 255

输出应存储在字符串中并显示。

1 个答案:

答案 0 :(得分:2)

替换

string s = BitConverter.ToString(byteData);

string s = string.Join(" ", byteData.Select(b => b.ToString()));

你应该好好去。