Biraz maskeleme operatörünü kullanın. C dilinde:
X & 8
"8" ler bit ayarlı ise, doğrudur.
Sen bit maskeleri numaralandırmak ve set kaç sayabilirsiniz.
If it really is the case that the entire word contains bits, and you want to simply
compute how many bits are set, you want in essence a "population count". The absolute
fastest way to get a population count is to execute a native "popcnt" usually
available in your machine's instruction set.
Eğer uzayda umurumda değil ise, countedbits[...] precomputed bit sayıları ile değerine göre endeksli bir dizi ayarlayabilirsiniz. Daha sonra tek bir bellek erişimi sizin bit sayısını hesaplar.
Sık sık kullanılan, sadece düz "bit twiddling code" bu biraz sayar hesaplar:
(Kernigan yöntemi):
unsigned int v; // count the number of bits set in v
unsigned int c; // c accumulates the total bits set in v
for (c = 0; v; c++)
{
v &= v - 1; // clear the least significant bit set
}
(Paralel bit summming, 32 bit)
v = v - ((v >> 1) & 0x55555555); // reuse input as temporary
v = (v & 0x33333333) + ((v >> 2) & 0x33333333); // temp
c = ((v + (v >> 4) & 0xF0F0F0F) * 0x1010101) >> 24; // count
Önce biraz twiddling kesmek görmediyseniz, bir tedavi için konum.
PHP, komik olma, bu aritmetik bazı komik şeyler olabilir.