[Vienna-pm] pseudo-bitmask to ints

Josef e9427749 at stud4.tuwien.ac.at
Mon Oct 29 12:36:40 PDT 2007


Wolfgang Laun schrieb:
> Vielleicht noch eine kompakte Lösung:
> 
>   $mask =~ s/\?/./g;
>   @p = join('X','',map(unpack('B*',pack('C',$_)),0..15)) =~ 
> m/X0{4}($mask)/g;
>   print "p=@p\n" ;

Achso Kürze war gefragt, dann allerdings:

sub pseudobit4mask2int ($)
{ (my $bm=shift)=~s/\?/./g;
   return map oct,sprintf('%#06b 'x16,0..15)=~m/\b(0b0*$bm)\b/g;
}

Ebenfalls bruteforce für max. 4bits,
führende Nullen dürfen allerdings weggelassen werden, und
es liefert Nummern statt Bitstrings.

ciao,
   Josef ;-)

---
   unpack('B*',chr) === unpack('B*',pack('C',$_))



More information about the Vienna-pm mailing list