gpt4 book ai didi

perl - 在 Perl 中将字符串中的十六进制数字转换为负数

转载 作者:行者123 更新时间:2023-12-01 16:15:35 27 4
gpt4 key购买 nike

我在日志文件中有一堆以十六进制字符串表示的数字,这些数字正在由 Perl 脚本解析,而且我对 Perl 相对缺乏经验。

其中一些数字实际上是有符号负数,即当表示为 16 位有符号整数时,0xFFFE == -2

有人可以告诉我从 Perl 中的字符串 FFFE 获取该数字的有符号表示的规范方法,或者以其他方式向我提供教程或其他资源吗?

最佳答案

您可以使用hex()函数从十六进制转换为十进制,但它将输入解释为无符号值。为了弥补这一点,请将十进制值打包为无符号数量并将其解包为有符号数量:

my $num = unpack('s', pack('S', hex('FFFE')));

“s”和“S”模板分别用于有符号和无符号 16 位量。请参阅 pack 的文档其他模板和使用信息的功能。

关于perl - 在 Perl 中将字符串中的十六进制数字转换为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2111839/

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