字节数组与字符串之间的相互转换

 

 //将字节转换成字符串(16进制)
// 方法1
 public string Bytes2HexString(byte[] bytes)
 {
      string str= "";
      for (int i = 0; i < bytes.Length; i++)
      {
           str += string.Format("{0:X2}", bytes[i]);
      }
      return str;
 }
// 方法2
public string Bytes2HexString(byte[] bytes)
 {
      string str= string.Concat(bytes.Select(u => u.ToString("X2")));
      return str;
 }
// 方法3
public string Bytes2HexString(byte[] bytes)
{
  string str= BitConverter.ToString(bytes).ToUpper();
  return str;
}
// 方法4
public string Bytes2HexString(byte[] bytes) 
{
    StringBuilder sb = new StringBuilder(data.Length * 3);
    foreach (byte b in data)
    {
        sb.Append(Convert.ToString(b, 16).PadLeft(2, '0'));
    }
    return sb.ToString().ToUpper();
}
// 方法5
public string Bytes2HexString(byte[] bytes)
{
    string str = "";
    if (insBytes != null)
    {
        for (int i = 0; i < length; i++)
        {
            str += insBytes[i].ToString("X2");
        }
    }
  return str;
}
    

 

 

 

 //将字符串(16进制)转化成字节数组
 // 方法1
 public byte[] HexString2Bytes(string str, int length)
 {
     byte[] bytes= new byte[length];
     for (int i = 0; i < length; i++) 
     {
         bytes[i] = Convert.ToByte("0X" + str.Substring(i * 2, 2), 16);
     }
     return bytes;
 }

// 方法2
public byte[] HexString2Bytes(string hexString)
{
  if (hexString.Length % 2 != 0)
    throw new ArgumentException();

   byte[] bytes = Enumerable.Range(0, hexString.Length / 2) //Range产生一个Enumerable类型的[0,1,2, ......]索引数组
            .Select(i => Convert.ToByte(hexString.Substring(i * 2, 2), 16))
            .ToArray();
    return bytes;
}

 

public string Bytes2HexString(byte[] bytes)
 {
      string str= string.Concat(bytes.Select(u => u.ToString("X2")));
      return str;
 }
posted @ 2020-08-20 11:15  llkj  阅读(396)  评论(0编辑  收藏  举报