在c#项目中用到的二进制、十六进制与字节数组的相互转换
class HexCommon
{
/// <summary>
/// 16进制字符串转字节数组
/// 如01 02 ff 0a
/// </summary>
/// <param name="hexString"></param>
/// <returns></returns>
public static byte[] strHexToByte(string hexString)
{
hexString = hexString.Replace(" ", "");
if ((hexString.Length % 2) != 0)
hexString += " ";
byte[] returnBytes = new byte[hexString.Length / 2];
for (int i = 0; i < returnBytes.Length; i++)
{
string temp = hexString.Substring(i * 2, 2).Trim();
returnBytes[i] = Convert.ToByte(temp, 16);
}
return returnBytes;
}
/// <summary>
/// 6进制字符串转字节数组
/// </summary>
/// <param name="hexString"></param>
/// <param name="separator">分隔符</param>
/// <returns></returns>
public static byte[] strHexToByte(string hexString, char separator)
{
if (separator == char.MinValue)
{
return strHexToByte(hexString);
}
string[] hexarray = hexString.Split(separator);
List<string> temphexarray = new List<string>(hexarray);
var newhexarray = temphexarray.Where(u => u != string.Empty);
int len = newhexarray.Count();
byte[] returnBytes = new byte[len];
int i = 0;
foreach (string str in newhexarray)
{
string temp = str.Trim();
returnBytes[i] = Convert.ToByte(temp, 16);
i = i + 1;
}
return returnBytes;
}
/// <summary>
/// 字节数组转