网站技术维护费/seo专员是干什么的
题目:
面试题15. 二进制中1的个数
思路:
- 可以使用字符串思维解题,先把这个二进制数看成一串字符串,然后统计该字符串中 ” 1 “ 出现的频率即可。
- 使用二进制数的移位和 与运算
- 每次对该二进制数的最后一个数字进行处理,
- 首先我们需要知道一个运算:任何一个二进制数与 1 进行与运算,只要这个 二进制数的最后一位数是 1 那么运算的结果就是 1 。否则为 0 ;
- 对二进制数进行 与 1 运算,然后将该二进制数无符号右移一位。再继续运算,知道运算结束。
实现:
public class Solution {// you need to treat n as an unsigned valuepublic int hammingWeight(int n) {int res = 0;while(n != 0){res += n & 1;n >>>= 1;}return res; }
}