今天在吹牛逼群里看到有人发了这么一个问题,并发出了好几种解决放法,遂写文章记录下来。
这是一道面试题可以用以下的一些方案。
第一种是很容易想到的采用循环的方式并且与1进行位与运算,具体代码如下。
unsigned int GetBitNumOfOne_ByLoop1(unsigned int nValue)
{
const unsigned int nNumOfBitInByte = 8;
unsigned int nBitMask = 1;
unsigned int nBitNum = 0;
for(unsigned int i = 0 ; i < sizeof(nValu...
求一个unsigned int 数的二进制表示中有多少个1阅读全文