文章目录
最强解析面试题:二进制中 1 的个数「建议收藏!」
文章讲解 “ 二进制中 1 的个数 ” 经典面试题,包含思路及源码,及解惑!
题目
输入一个整数,输出该数二进制表示中 1 的个数。其中负数用补码表示。
数据范围:2^ 32
示例1
输入:
3
返回值:
2
思路
运用位运算
依次判断二进制数末尾是否为 1 ,时间复杂度是二进制位数。
位运算 (>>、&):二进制数与 1 做 & 运算,每次右移一位,直至数值为 0。
例子: 2
0010 & 0001 = 0000 ;
2 >> 1 = 0001;
0001 & 0001 = 0001;
0001 >> 1 = 0;
& 运算次数为 2 ,结果为 1 的为一次,故 2 二进制中 1 的个数为 1。