跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 二进制文件读取:有没有简单方法按规则解码二进制
未分類
13 1 月 2021

二进制文件读取:有没有简单方法按规则解码二进制

二进制文件读取:有没有简单方法按规则解码二进制

資深大佬 : leiuu 0

假设有二进制文件 a.bin ,前 10 个字节如下(使用 16 进制显示,原始数据使用小端模式):

39 00 00 00 12 3F 6F 5A A7 04

希望这样读取:

  1. 39 00 00 00 -> 第 1-4 个字节转为 int , 0x00000039 = 57

  2. 12 3F -> 5-6 个字节转为 int , 0x3F12 = 16146

  3. 6F 5A A7 04 -> 7-10 个字节转为 int , 0x045AA76F = 73049967

文件剩余部分也是这个格式,希望可以每 10 个字节,输出一行数据,每行 3 个数,并用空格间隔。

现在的处理方法: input:

echo $(od -An -t dI -j 0 -N 4 a.bin  &&  od -An -t dI -j 4 -N 2 a.bin && od -An -t dI -j 6 -N 4 a.bin) 

output:

57 16146 78076527 

有些麻烦,有没有更好的方法呢。

大佬有話說 (5)

  • 資深大佬 : crclz

    https://gist.github.com/crclz/8da1ff89b00575604eb3493e15abe76a

  • 資深大佬 : skinny

    struct.unpack

  • 資深大佬 : msg7086

    遇事不决 unpack,很多语言里都有的工具。

  • 資深大佬 : faketemp

    python
    https://pypi.org/project/bitstring/
    https://docs.python.org/3/library/struct.html

  • 主 資深大佬 : leiuu

    @crclz 谢谢 老哥 代码简单清晰 学到了 ~

    @skinny
    @msg7086
    @faketemp
    unpack 精确的解决了我对这个概念的盲点

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具