My $0.02. I've used the bit-ordering implied in the 'irrelevant' OP.
>perl -wMstrict -le
"my $bits = unpack 'b*', pack 'N*', 0x01020304, 0x11121314;
print qq{'$bits'};
;;
$bits =~ s{ ((.) \2*) }
{ ($2 eq '1' ? '-' : '') . length($1) . ',' }xmsge;
print qq{'$bits'};
;;
my @n = map 0+$_, split /,/, $bits;
print qq{@n};
"
'1000000001000000110000000010000010001000010010001100100000101000'
'-1,8,-1,6,-2,8,-1,5,-1,3,-1,4,-1,2,-1,3,-2,2,-1,5,-1,1,-1,3,'
-1 8 -1 6 -2 8 -1 5 -1 3 -1 4 -1 2 -1 3 -2 2 -1 5 -1 1 -1 3
Update: Maybe better:
>perl -wMstrict -le
"my $bits = unpack 'b*', pack 'N*', 0x01020304, 0x11121314;
print qq{'$bits'};
;;
my @n =
map { my $l = length; chop eq '1' ? -$l : $l; }
$bits =~ m{ 0+ | 1+ }xmsg
;
print qq{@n};
"
'1000000001000000110000000010000010001000010010001100100000101000'
-1 8 -1 6 -2 8 -1 5 -1 3 -1 4 -1 2 -1 3 -2 2 -1 5 -1 1 -1 3
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.