我最近写了一个解析单个二进制字节月字段的文本表示的脚本.
(不要问: – {)
在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 – 十六进制