-3

我想将字符串转换为数组。我有这样的事情:

my $binvalue = 10101010101010101010101010101010;

而且,我想把它放在一个数组中......

my @array = (1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0)

我想这样做是为了能够索引任何值并更改它。就像最高有效位是 1 一样,将其更改为 0。

4

3 回答 3

3

尝试这个。注意“0b”来存储二进制数。

my $binvalue = 0b10101010101010101010101010101010;
print "\$binvalue as decimal: $binvalue\n";

my @binvalues = split //, sprintf '%b', $binvalue;
print "\@binvalues: @binvalues\n";
于 2013-07-16T17:05:21.653 回答
2

根据拆分 perldoc(请参阅 kjprice 的答案),您想要的应该是

my @array = split('', $binvalue, x)

其中 x 是 $binvalue 的长度,所以:

my @array = split('', $binvalue, length($binvalue))
于 2013-07-16T16:41:37.973 回答
2

From the split perldoc:

However, this:

print join(':', split('', 'abc')), "\n";

uses empty string matches as separators to produce the output 'a:b:c'; thus, the empty string may be used to split EXPR into a list of its component characters.

于 2013-07-16T16:31:18.883 回答