我有一个字符串
$string = "0x0"
现在我想基本上将此字符串用作数字并进行按位移位,即我的目标是
$C = $string <<4 ;
但是当我这样做时,它说:
Argument "0x0" isn't numeric in left bitshift (<<)
有人可以帮忙执行吗?
这是因为"0x0"不是数字。这是一个字符串。您必须将其转换为数值。
use strict;
use warnings;
my $string = "0x0";
my $number = hex($string);
my $C = $number <<4 ;
print $C;
如前所述,您必须将其转换为数值并使用sprintf
切换回十六进制值。
sprintf ("0x%x" , hex($string) << 4);