gpt4 book ai didi

perl - perl 中的十六进制转储解析

转载 作者:行者123 更新时间:2023-12-04 17:05:11 25 4
gpt4 key购买 nike

我在一个文件中有一个消息的十六进制转储,我想将它放入一个数组中
所以我可以对其执行解码逻辑。
我想知道这是否是解析看起来像这样的消息的更简单的方法。

37 39 30 35 32 34 35 34 3B 32 31 36 39 33 34 35
3B 32 31 36 39 33 34 36 00 00 01 08 40 00 00 15
6C 71 34 34 73 69 6D 31 5F 33 30 33 31 00 00 00
00 00 01 28 40 00 00 15 74 65 6C 63 6F 72 64 69
74 65 6C 63 6F 72 64 69



请注意,任何行上的数据最多可以是 16 个字节。但是任何行也可以包含更少的字节(最小 :1 )
有没有一种漂亮而优雅的方式而不是在 perl 中一次读取 2 个字符?

最佳答案

我会一次读一行,去掉空格,然后使用 pack 'H*'转换它。在不知道您尝试应用哪种“解码逻辑”的情况下,很难更具体。例如,这是一个将每个字节转换为十进制的版本:

while (<>) {
s/\s+//g;
my @bytes = unpack('C*', pack('H*', $_));
print "@bytes\n";
}

示例文件的输出:
55 57 48 53 50 52 53 52 59 50 49 54 57 51 52 53
59 50 49 54 57 51 52 54 0 0 1 8 64 0 0 21
108 113 52 52 115 105 109 49 95 51 48 51 49 0 0 0
0 0 1 40 64 0 0 21 116 101 108 99 111 114 100 105
116 101 108 99 111 114 100 105

关于perl - perl 中的十六进制转储解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3411500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com