[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