The call to this sub is:sub shift_bs{ %cs0=( '0' => '0', '1' => '2', '2' => '4', '3' => '6', '4' => '8', '5' => 'A', '6' => 'C', '7' => 'E', '8' => '0', '9' => '2', 'a' => '4', 'b' => '6', 'c' => '8', 'd' => 'A', 'e' => 'C', 'f' => 'E' ); %cs1=( '0' => '1', '1' => '3', '2' => '5', '3' => '7', '4' => '9', '5' => 'B', '6' => 'D', '7' => 'F', '8' => '1', '9' => '3', 'a' => '5', 'b' => '7', 'c' => '9', 'd' => 'B', 'e' => 'D', 'f' => 'F' ); $c1 = shift; $char_stream = shift; if($char_stream =~ /^$/){ return $c1; } $char_stream =~ /^(.*)(.)$/; ($char_st,$char)=($1,$2); $c_ = int(hex($char)/8); $char2=($c1==1?$cs1{$char}:$cs0{$char}); return ((shift_bs($c_,$char_st)).$char2); }
Where $source is the hex string that I'm trying to convert.push @src, shift_bs(1,$source);
In reply to Bit by a Hex String by abitkin
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |