写几个函数,专门用于转换使用,可以将这几个函数放到一个类里面;
/// <summary>
/// 将十六进制字节字符串转换成字节数组 内容不变
/// </summary>
/// <param name="strHexString"></param>
/// <param name="spacebz" 是否去掉空格,这里没有用到></param>
/// <returns></returns>
public static byte[] HexStringToByteArray(string strHexString,int spacebz)
{
strHexString = strHexString.Replace(" ", "");
strHexString = strHexString.Replace("\r", "");
strHexString = strHexString.Replace("\n", "");
int len = strHexString.Length;
if ((len % 2) != 0)
strHexString = strHexString.Substring(0, strHexString.Length - 1);
int byteLen = len / 2;
byte[] bytes = new byte[byteLen];
try
{
for (int i = 0; i < byteLen; i++)
{
bytes[i] = Convert.ToByte(strHexString.Substring(i * 2, 2), 16);
}
return bytes;
}
catch
{
return bytes;
}
}
/// <summary>
/// 将字节数据转换成十六进制字符串 b 要转换的数据,spacebz 是否增加空格
/// </summary>
/// <param name="b"></param>
/// <param name="spacebz"></param>
/// <returns></returns>
public static string ByteArrayToHexString(byte[] b,int spacebz)
{
string ss = "";
for (int i = 0; i < b.Length; i++)
{
ss += b[i].ToString("X2");
if (spacebz==1)
ss += " ";
}
return ss;
}
/// <summary>
/// 将字节数据转换成十六进制字符串 b 要转换的数据,len 要转换的数据长度,从0开始,spacebz 是否增加空格
/// </summary>
/// <param name="b"></param>
/// <param name="len"></param>
/// <param name="spacebz"></param>
/// <returns></returns>
public static string ByteArrayToHexString(byte[] b, int len,int spacebz)
{
string ss = "";
if (len > b.Length) len = b.Length;
for (int i = 0; i < len; i++)
{
ss += b[i].ToString("X2");
if (spacebz == 1)
ss += " ";
}
return ss;
}
/// <summary>
/// 将字符串间隔一个字节增加一个空格
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string AddSpace_HexString(string str)
{
string tmp="";
for(int i=0;i<str.Length/2;i++)
{
tmp += str.Substring(i * 2, 2);
tmp += " ";
}
return tmp;
}
/// <summary>
/// 将字符串中的空格删除
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string DelSpace_HexString(string str)
{
return str.Replace(" ", "");
}
记录一下