unsigned int GetBitNum3(unsigned int nValue) { unsigned int n = 0; while(0 < nValue) {//这句代码是把nValue 的某位(其实具体点说为从低位算起的第一个值为1 //的位)及其以后的所有位都变成0 nValue &=(nValue - 1); n++; } return n; }