Wieviele Bits sind gesetzt
Horst
- perl
Hallo,
siehe Thema: Wie kann ich mit Perl feststellen, wieviele Bits in einer Zahl gesetzt sind?
Bsp.: die Zahl 10 => 1010 => zwei Bits.
Viele Grüße,
Horst Haselhuhn
Hi,
siehe Thema: Wie kann ich mit Perl feststellen, wieviele Bits in einer Zahl gesetzt sind?
So extrem schwierig, meine andere Methode nach Perl zu portieren ist es nun doch auch wieder nicht... *seufz*
Für 32bit-Systeme:
sub countBits ($) {
my $count = $_[0] - (($_[0] >> 1) & 0xDB6DB6DB) - (($_[0] >> 2) & 0x49249249);
return (($count + ($count >> 3)) & 0xC71C71C7) % 63;
}
Die 64bit-Version darfst Du Dir selbst erarbeiten (da Perl selbst 64 bit unsigned kann, müsstest Du übrigens auch noch das 63te bit mit vorziehen, wenn Du das berücksichtigen willst).
Viele Grüße,
Christian
Hallo,
sub countBits ($) {
my $count = $[0] - (($[0] >> 1) & 0xDB6DB6DB) - (($_[0] >> 2) & 0x49249249);
return (($count + ($count >> 3)) & 0xC71C71C7) % 63;
}
Vielen Dank,
Hotte