sub most_significant_ix { my $n = shift; return if $_[0] == 0; return int(log($_[0])/log(2)); } #### sub most_significant_ix { my $n = shift; return undef if $n == 0; my $bits = 64; while (--$bits >= 0) { return $bits if (2**$bits) & $n; } }