【发布时间】:2017-06-20 05:28:16
【问题描述】:
我正在尝试编写一个脚本来在文本文件中查找十六进制字符串并将它们转换为它们的反向字节顺序。我遇到的问题是一些十六进制字符串是 16 位的,有些是 64 位的。我使用 Perl 的包来打包和解包 16 位十六进制数字,效果很好,但 64 位则不行。
print unpack("H*", (pack('I!', 0x20202032))). "\n"; #This works, gives 32202020
#This does not
print unpack("H*", (pack('I!', 0x4f423230313430343239303030636334))). "\n";
我用 q 和 Q 尝试了第二个(我得到 ffffffffffffffff)。我是不是把这一切都搞错了?
作为背景知识,我有一个多 GB 的以管道分隔的文本文件,其中包含以相反字节顺序的十六进制字符串,如上所述。此外,文件的列不标准;有时十六进制字符串出现在一列中,有时出现在另一列中。我需要将十六进制字符串转换为它们的反向字节顺序。
【问题讨论】: