1. 16进制字符串转ASCII字符串,先转字节数组再转ASCII
/// <summary>
/// 16进制字符串先转字节数组
/// </summary>
/// <param name="strHEX">16进制字符串</param>
/// <returns>字节数组</returns>
public static byte[] HexstringToBytes(string strHEX)
{
if (strHEX.Length == 0)
{
return null;
}
strHEX = strHEX.Length % 2 == 0 ? strHEX : "0" + strHEX;
byte[] Barr = new byte[strHEX.Length / 2];
for (int i = 0; i < Barr.Length; i++)
{
Barr[i] = Convert.ToByte(strHEX.Substring(i * 2, 2), 16);
}
return Barr;
}
/// <summary>
/// 16进制字符串转ASCII码字符串
/// </summary>
/// <param name="strHEX">16进制字符串</param>
/// <returns>字符串</returns>
public static string getHexASCIItoStr(string strHEX)
{
byte[] Barry = HexstringToBytes(strHEX);
System.Text.ASCIIEncoding asciiEncoing = new System.Text.ASCIIEncoding();
string strstr = asciiEncoing.GetString(Barry);
Console.WriteLine(strstr);
return strstr;
}
2. 字节数组转16进制字符串
//字节数组转16进制字符串
StringBuilder builder = new StringBuilder();
for (int i = 0; i < bResult.Length; i++)
{
builder.Append(string.Format("{0:X2} ", bResult[i]));
}
strOut = builder.ToString().Trim();