名人堂再聚首 2023-03-15 10:37 采纳率: 76.5%
浏览 28
已结题

C#按字符串原样转为16进制

大家好!

在C#中如何将一个hex文件的内容按字符串格式转换成对应的16进制?

比如一行hex文件的内容如下:

:10751E00A019D8A4120056EC2FF0000E0101A06F96

除开冒号,本身这些数据都是每两个字符组成一个16进制,如果上面这一行是个字符串,我如何将它转换为一个字节数组,就像:
[0x10,0x75,0x1E, 0x00......0x96]

谢谢大家了!

  • 写回答

2条回答 默认 最新

  • 名人堂再聚首 2023-03-15 11:20
    关注

    问题已解决,谢谢大家!
    下面是解决方案,有需要的朋友可以参考下:
    https://blog.csdn.net/weixin_36209467/article/details/103166153

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • MarkHan_ 2023-03-15 11:53
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    你可以使用C#中的Convert类将字符串转换为16进制数。
    ·
    首先,你需要去除冒号并将字符串拆分成两个字符的数组。然后,你可以使用Convert类的FromHexString方法将每个两个字符的数组元素转换为相应的16进制数。最后,将所有16进制数放入一个字节数组中。
    ·
    下面是一个示例代码:

    string hexString = "10751E00A019D8A4120056EC2FF0000E0101A06F96";
    hexString = hexString.Substring(1); // 去除冒号
    byte[] byteArray = new byte[hexString.Length / 2];
    for (int i = 0; i < hexString.Length; i += 2)
    {
        string hexByte = hexString.Substring(i, 2);
        byteArray[i / 2] = Convert.ToByte(hexByte, 16);
    }
    Console.WriteLine(BitConverter.ToString(byteArray));
    
    
    

    输出:

    10-75-1E-00-A0-19-D8-A4-12-00-56-EC-2F-F0-00-0E-01-01-A0-6F-96
    
    
    

    该代码将hexString转换为一个字节数组,并使用BitConverter.ToString方法将其打印到控制台上。

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月15日

悬赏问题

  • ¥15 stata合并季度数据和日度数据
  • ¥15 c语言练习:统计词频
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应,发到邮箱2644980770@qq.com
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
  • ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?
  • ¥15 用QT,进行QGIS二次开发,如何在添加栅格图层时,将黑白的矢量图渲染成彩色
  • ¥50 监控摄像头 乐橙和家亲版 保存sd卡的文件怎么打开?视频怎么播放?
  • ¥15 Python的Py-QT扩展库开发GUI
  • ¥60 提问一下周期性信信号的问题
  • ¥15 jtag连接不上fpga怎么办