1つの整数を求めて2進数の後の1の個数に変換します
方法1:この整数を1桁ずつ右に移動し、末尾が1の回数を計算すればよい.コードは以下の通りである.
最後のiCount結果は3
方法2:1つの整数から1を減算し、元の整数と演算すると、その整数の最も右側の1つが0になります.では、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++;
}