如何将十六进制字符串转换为Perl中的数字?

前端之家收集整理的这篇文章主要介绍了如何将十六进制字符串转换为Perl中的数字?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近写了一个解析单个二进制字节月字段的文本表示的脚本.

(不要问: – {)

在sprintf摆脱了一段时间后,我放弃了,做到了这一点;

our %months = qw / x01 1 
       x02 2
       x03 3 
       x04 4 
       x05 5 
       x06 6 
       x07 7 
       x08 8 
       x09 9 
       x0a 10 
       x0b 11 
       x0c 12 /;
...
my $month = $months{$text};

因为我只使用了12个数字,而是有更好的方法呢?

解决方法

如果你有
$hex_string = "0x10";

您可以使用:

$hex_val = hex($hex_string);

你会得到:$hex_val == 16

十六进制不需要字符串开头的“0x”.如果它丢失,它仍然会将十六进制字符串转换为数字.

您也可以使用oct将二进制,八进制或十六进制字符串转换为基于前缀的数字:

> 0b – 二进制> 0 – 八进制> 0x – 十六进制

猜你在找的Perl相关文章