编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。
提示:
-3
。c++解法
- class Solution {
- public:
- int hammingWeight(uint32_t n) {
- int result = 0;
- while(n){
- if(n & 1) result++;
- n >>= 1;
- }
- return result;
-
- }
- };
本题要计算给定数的二进制表达式中数字位数位一的数,利用按位与运算,每计算一次则向右移一位,最后返回答案
本题考察了位运算中按位与的运用,判断位数是否为一,将为一的数相加返回答案