public class DataConvertHelper
{
public static string ByteToHex(byte comByte)
{
return comByte.ToString("X2") + " ";
}
public static string ByteToHex(byte[] comByte, int len)
{
string returnStr = "";
if (comByte != null)
{
for (int i = 0; i < len; i++)
{
returnStr += comByte[i].ToString("X2") + " ";
}
}
return returnStr;
}
public static byte[] HexToByte(string msg)
{
msg = msg.Replace(" ", "");
byte[] comBuffer = new byte[msg.Length / 2];
for (int i = 0; i < msg.Length; i += 2)
{
comBuffer[i / 2] = (byte)Convert.ToByte(msg.Substring(i, 2), 16);
}
return comBuffer;
}
public static string HEXToASCII(string data)
{
data = data.Replace(" ", "");
byte[] comBuffer = new byte[data.Length / 2];
for (int i = 0; i < data.Length; i += 2)
{
comBuffer[i / 2] = (byte)Convert.ToByte(data.Substring(i, 2), 16);
}
string result = Encoding.Default.GetString(comBuffer);
return result;
}
public static string ASCIIToHEX(string data)
{
StringBuilder result = new StringBuilder(data.Length * 2);
for (int i = 0; i < data.Length; i++)
{
result.Append(((int)data[i]).ToString("X2") + " ");
}
return Convert.ToString(result);
}
/// <summary>
/// 十六进制字符串转换
/// </summary>
/// <param name="hs"></param>
/// <param name="encode"></param>
/// <returns></returns>
public string HexStringToString(string hs, Encoding encode)
{
string strTemp = "";
byte[] b = new byte[hs.Length / 2];
for (int i = 0; i < hs.Length / 2; i++)
{
strTemp = hs.Substring(i * 2, 2);
b[i] = Convert.ToByte(strTemp, 16);
}
//按照指定编码将字节数组变为字符串
return encode.GetString(b);
}
/// <summary>
/// 字符串转16进制字节数组
/// </summary>
/// <param name="hexString"></param>
/// <returns></returns>
public static byte[] StrToToHexByte(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++)
returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
return returnBytes;
}
}