在看博客的时候看到有的博客有写这个计算“1”的算法,以前好像有写过类似的算法,所以现在把它记下来,给自己留个印象。
int Cnt_one(int a)
{
int bit, cnt;
while(a)
{
bit = a % 2; // 相当于取得整数的低位,以2取余就是取二进制的低位
if( bit == 1 ) // 是“1”就可以计数了
cnt++;
a = a / 2; // 除“2”即时整数向右移动一位
}
return cnt;
}