以前は2進数の1の数に非常に一般的な方法を求めて
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1回の int型のラン(int型N){ 2 のint CNT。 3 しばらく(N> 0 ){ 4 N = N・(N- 1 )。 5 CNT ++ ; 6 } 7 }
ああああ私は良い食べ物です
ギャングスターは奇妙なアルゴリズムで発見された(1)この問題を解決することであるO
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
INT bsrun(INT N){ int型 TMP = N - ((N >> 1)&033333333333) - ((N >> 2)&011111111111 )。 リターン((TMP +(TMP >> 3))&030707070707)%63 。 }
なぜ?
私はアヒルを知りません。。。