计算二进制数中1出现的次数
概述:
给定一个数,如32位的int类型的整数,由于计算机中存储都是用二进制的形式,所以计算给出的这个整数中出现1的次数
下面介绍一共五种方法:
一、mod 2
对一个整数除以2,如果整除,原来的数字就会少一个最低位的0,否则出现余数则说明最低位是1,下面给出C++代码:
//mod 2
int version1(int a)
{
int count = 0;
while (a)
{
count += a % 2;
a /= 2;
}
return count;
}
二、mod 2(位操作)
原理同方法一,不同的地方在于,这里的求余和除法都用了位操作来完成,下面给出C++代码: