我想将字符串转换为数组。我有这样的事情:
my $binvalue = 10101010101010101010101010101010;
而且,我希望在阵列中拥有它......
my @array = (1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0)
我希望这样做能够索引任何值并进行更改。 如果最高有效位为1,则将其更改为0.
答案 0 :(得分:3)
试试这个。注意“0b”存储二进制数。
my $binvalue = 0b10101010101010101010101010101010;
print "\$binvalue as decimal: $binvalue\n";
my @binvalues = split //, sprintf '%b', $binvalue;
print "\@binvalues: @binvalues\n";
答案 1 :(得分:2)
但是,这个:
print join(':', split('', 'abc')), "\n";
使用空字符串匹配作为分隔符来生成输出'a:b:c'; 因此,空字符串可用于将EXPR分割成其列表 组件字符。
答案 2 :(得分:2)
根据拆分perldoc(见kjprice的回答)你想要的应该是什么样的
my @array = split('', $binvalue, x)
其中x是$ binvalue的长度,所以:
my @array = split('', $binvalue, length($binvalue))