hotti: Wieviel Bit braucht eine integer Zahl

Beitrag lesen

hi,

vielen Dank für eure Bemühungen!

Logarithmus2 - ja klar. Wenn ich eine fertige Funktion nehme (c oder Perl, log()), ists jedoch so, dass da ein float zurückgegeben wird, den ich noch zu int casten und eins dazuzählen muss. Also doch lieber gleich eine Schleife über 32 Bit? Ich hab das mal gegenübergestellt (Perl):

  
my $zahl = 8;  
  
printf("%d %08b %d\n", bitcount($zahl), $zahl, log2($zahl)+1);  
  
sub bitcount{  
	my $n = shift || return 0;  
	  
	my $pos = 0;  
	for(my $i = 0; $i < 32; $i++){  
		my $bit = ($n >> $i) & 1;  
		if($bit){  
			$pos = $i;  
		}  
	}  
	return ++$pos;	  
}  
  
  
sub log2{  
	my $n = shift || return 0;  
	return log($n)/log(2);  
}  

Hotte

--
Nette Spielerei für verregnete Tage...