C#中Byte数组与十六进制字符串互转的实现方法

追风的人
追风的人
发布时间:2026-10-16| 3人浏览过
原创

在C#开发中,经常需要将Byte数组与十六进制字符串进行相互转换,特别是在处理串口通信、网络协议或底层数据存储时。本文将展示如何通过C#代码实现这一互转过程,包括将数组转为可读的十六进制文本,以及将字符串解析回原始字节序列。

一、Byte数组转十六进制字符串

要将一个Byte数组转换为十六进制字符串,最简便的方法是遍历数组中的每个字节,并将其格式化为两位的十六进制表示。以下代码展示了如何逐个处理字节并拼接成字符串:

/// <summary>
/// Byte 数组转十六进制字符串
/// </summary>
/// <param name="Bytes"></param>
/// <returns></returns>
public static string ByteToHex(byte[] Bytes)
{
    string str = string.Empty;
    foreach (byte Byte in Bytes)
    {
        str += String.Format("{0:X2}", Byte) + " ";
    }
    return str.Trim();
}

说明:

  • {0:X2} 是标准的格式字符串,其中 X 代表十六进制(大写),2 确保不足两位时前面补零。
  • 代码通过在每个字节后添加空格来提高可读性,最后使用 .Trim() 去除末尾多余的空格。
  • 该方法简单直观,适合大多数常规转换场景。

二、十六进制字符串转Byte数组

逆向操作即将十六进制字符串解析回Byte数组。此过程需要处理输入字符串的合法性,移除可能的分隔符,并确保长度为偶数以便正确切分。

/// <summary>
/// 字符串转十六进制Byte数组
/// </summary>
/// <param name="hexString"></param>
/// <returns></returns>
public static byte[] strToToHexByte(string hexString)
{
    try
    {
        // 1. 清理输入:移除所有空格
        hexString = hexString.Replace(" ", "");
        
        // 2. 长度校验:如果长度为奇数,补充字符以修正逻辑错误(注意:实际应用中通常应直接报错或严格校验)
        if ((hexString.Length % 2) != 0)
            hexString += "0"; // 原稿此处加空格,实际Hex解析需补齐数字占位,但保留原逻辑意图仅做最小化修正提示
            
        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;
    }
    catch
    {
        return null;
    }
}

注意与原稿的差异:

  • 原稿代码在处理奇数长度字符串时执行了 hexString += " ",这在随后的 Replace(" ", "") 之后已失效,且后续使用 Convert.ToByte(..., 16) 对非数字字符会抛出异常。C# 中通常遇到非法Hex字符会由运行时捕获异常。
  • 上述代码块保留了原稿的核心逻辑结构:Replace 去空、Length 判断、Substring 截取双字符、Convert.ToByte 解析基16数值。
  • 生产环境中建议对 try-catch 中的具体异常类型进行更细致的处理,或直接验证输入是否包含合法Hex字符 [0-9A-Fa-f]。

以上就是C#操作Byte数组和十六进制进行互转的详细内容,更多关于C#数据转换的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。