将字符串(16进制数据样式 以" "为分隔符)转换成16进制的字节数组
/// <summary>
/// 此方法用于将字符串(16进制数据样式 以" "为分隔符)转换成16进制的字节数组
/// </summary>
/// <param name="str">要转换的字符串(16进制数据样式 " "为分隔符) AA BB CC DD EE FF</param>
public static byte[] ToHexBytes(this string str)
{
// 1. 去掉字符串中的空格。
str = str.Replace(" ", "");
if (str.Length / 2 == 0)
{
str += " ";
}
// 2. 声明一个字节数组,其长度等于字符串长度的一半。
byte[] buffer = new byte[str.Length / 2];
for (int i = 0; i < buffer.Length; i++)
{
// 3. 为字节数组的元素赋值。
buffer[i] = Convert.ToByte(str.Substring(i * 2, 2), 16);
}
// 返回字节数组。
return buffer;
}
将16进制的字节数组转换成字符串(16进制数据样式 " "为分隔符)。
/// <summary>
/// 此方法用于将16进制的字节数组转换成字符串(16进制数据样式 " "为分隔符)。
/// </summary>
/// <param name="bytes">要转换的16进制的字节数组。</param>
/// <returns></returns>
public static string ToString2(this byte[] bytes)
{
string result = string.Empty;
if (bytes != null)
{
for (int i = 0; i < bytes.Length; i++)
{
// 将每一个字节数组转换成字符串(16进制数据样式 " "为分隔符)
result += bytes[i].ToString("X2") + " ";
}
}
return result;
}