Bu soru, Bits counting algorithm (Brian Kernighan) in an integer time complexity üzerinden okuduktan sonra doğrudan izler. Söz konusu Java kodu burada elde ne n &= (n-1)
anlamak istiyorumKernighan'ın bit sayım algoritmasının ardındaki mantığı açıklayınız.
int count_set_bits(int n) {
int count = 0;
while(n != 0) {
n &= (n-1);
count++;
}
}
mı? Bir numara 2 gibi bir güç olup olmadığını tespit etmek için başka şık algoritmasında yapının benzer türde bir gördük: Bir hata ayıklayıcı bana yardımcı içinde
if(n & (n-1) == 0) {
System.out.println("The number is a power of 2");
}
olası çift http://stackoverflow.com/questions/12380478/bits-counting-algorithm-brian- kernighan-in-bir-tamsayı-zaman-karmaşıklık) – OhadR