首页 > 解决方案 > 将表示十六进制值的 ascii 转换为二进制数据

问题描述

我正在寻找一种将表示十六进制值的 ascii 数据转换为二进制文件的方法。详细地说,通过将十六进制值转换为字符串来记录串行端口上与连接的设备(在本例中为 GPS 接收器)的所有通信。我正在寻找一种将这些数据转换回二进制数据的方法。基本上,我可以通过运行 HxD 编辑器并通过从日志中提取的字符串来执行此操作。 2 行记录的 HxD 表示

我想做的是能够在命令行上执行此操作,而无需手动将测试复制/粘贴到十六进制编辑器。

这些行总是以 wi B562 开头,后跟值,例如 06,在这种情况下,应导致输出(表示为字符串)“µb”。

作为一个例子,我正在编辑一个包含我要转换的数据的文件,以及由 HxD 编辑器编写的结果文件。这个生成的文件可以通过 u.blox.com 提供的一个名为 u-center 的工具打开和重放。它显示正在记录的卫星信息... 输入文件log01.ublox.tmp 输出文件log01.ubx

感谢您的任何支持。- 瓦西里

标签: bashbinaryhexascii

解决方案


您可以使用以下命令将表示十六进制值的 ASCII 转换为二进制数据:

xxd -r -ps log01.ublox.tmp output.ubx

推荐阅读