Oに近い(1)バイナリ1の数を求めます

以前は2進数の1の数に非常に一般的な方法を求めて

1回の int型のラン(int型N){
 2      のint CNT。
3      しばらく(N> 0 ){
 4          N = N・(N- 1 )。
5          CNT ++ ;
6      }
 7 }

ああああ私は良い食べ物です

ギャングスターは奇妙なアルゴリズムで発見された(1)この問題を解決することであるO

INT bsrun(INT N){
     int型 TMP = N - ((N >> 1)&033333333333) - ((N >> 2)&011111111111 )。
    リターン((TMP +(TMP >> 3))&030707070707)%63 
}
DALAOバージョン

なぜ?

私はアヒルを知りません。

おすすめ

転載: www.cnblogs.com/xwx2354672579/p/11622301.html