位1的个数
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。
>>> 00000000000000000000000000001011 & 1 1 >>> 00000000000000000000000000001011 | 1 521 >>> 00000000000000000000000000001011 | 0 521 >>> 00000000000000000000000000001011 & 0 0 >>> 00000000000000000000000000000101 & 1 1 >>> 000000000000000000000000010000 & 1 0 // 最后一位是啥就出啥 int hammingWeight(uint32_t n) { int ret=0; for(int i = 0;i<32;++i){ if((n>>i)&1) ++ret; } return ret; }
https://mp.weixin.qq.com/s/wd3ZdWPtKS-b_4ReBCyfwQ