1つの整数を求めて2進数の後の1の個数に変換します


方法1:この整数を1桁ずつ右に移動し、末尾が1の回数を計算すればよい.コードは以下の通りである.
int n = 7;
int iCount = 0;
while(n)
{
    if(n&1)
    {
       iCount++;
    }
    n>>=1;
}

最後のiCount結果は3
方法2:1つの整数から1を減算し、元の整数と演算すると、その整数の最も右側の1つが0になります.では、1つの整数のバイナリ表示に1つが何個あるかを何回行うことができます.コードは以下の通りです.
int n = 7;
int iCount = 0;
while(n)
{
   n = n&(n-1);
   iCount++;
}