題目如圖:
774280660616401147.png
- 要點(diǎn):
- 如果
x=2^n
澜搅,那么x&(x-1)=0
- 如果 x=奇數(shù), 那么
x&(x-1)=x-1
; - 如果 x=偶數(shù),那么每一次減少
2^n
氧秘。- 其中n的規(guī)律主要體現(xiàn)在16 以下的數(shù)寻行。
- 如果
比如:x=15;那么計(jì)算x=x&(x-1);
x的變化是:(箭頭標(biāo)示一次計(jì)算)
x=15 ---> x=14 ---> x=12 ---> x=8 --> x=0
- 對(duì)于超過(guò)16的數(shù)点晴,我們可以將其分解
2^n+2^(n-1)+...
感凤。
如果x=29
x=2^4+13
x=29-(要點(diǎn)2)-->2^4+(13-1)--->2^4+8-(要點(diǎn)1)-->2^4+0--(要點(diǎn)1)-->0
- 對(duì)于圖中的題目就與上面所舉的方法類似
9999=8192+1024+512+256+15
countx=8;