您的当前位置:首页正文

将字符串(16进制数据样式 以“ “为分隔符)转换成16进制的字节数组

2024-12-02 来源:个人技术集锦
将字符串(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;
}
显示全文