Rob,

my $i;
printf "%-4s => %s\n", $fields[$i++], $_ foreach qw/abc def lmn/;

These are arbitrary values.

Thanks for the kind and immediate response. I sincerely appreciate it.

Thanks and Regards,
Dharshana


On 11/9/06, Rob Dixon <[EMAIL PROTECTED]> wrote:

Dharshana Eswaran wrote:
> Hi all,
>
> I wanted to know how to parse a 8bit binary data bitwise?
>
> I have my input in hex and i convert it into binary form using the
> following
> logic:
>
> %h2b = (0 => "0000", 1 => "0001", 2 => "0010", 3 => "0011",
> 4 => "0100", 5 => "0101", 6 => "0110", 7 => "0111",
> 8 => "1000", 9 => "1001", a => "1010", b => "1011",
> c => "1100", d => "1101", e => "1110", f => "1111",
> );
>
> $hex = "43";
> ($binary = $hex) =~ s/(.)/$h2b{lc $1}/g;
> print $binary, "\n";
>
> Now the output for the above prg is
>
> 01000011
>
> Now i have to display this binary data as shown below:
>
> 0=> abc
> 100=> def
> 0011=> lmn
>
> How to go about this?


I assume your 'abc', 'def' etc. are arbitrary data? The program below may
help
you. Do come back here idf you have any questions.

Rob


use strict;
use warnings;

my $hex = "43";

my $binary = unpack 'B*', pack 'H*', $hex;

print "$binary\n\n";

my @fields = unpack 'A1A3A4', $binary;

my $i;
printf "%-4s => %s\n", $fields[$i++], $_ foreach qw/abc def lmn/;

**OUTPUT**

01000011

0    => abc
100  => def
0011 => lmn

Reply via email to