求正负二进制数的1的个数

Posted 村雨sup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求正负二进制数的1的个数相关的知识,希望对你有一定的参考价值。

class Solution {
public:
     int  NumberOf1(int n) {
         int ans = 0;
         int mask = 1;
         while(mask != 0){
             if(mask & n) ++ans;
             mask <<= 1;
         }
         return ans;
     }
};

---这个方法很好的解决了负数在机器码里存储符号位为1的问题,将mask掩码从右向左移位。

(反之,如果是将数据n从左向右移位,会让最高位补0)

以上是关于求正负二进制数的1的个数的主要内容,如果未能解决你的问题,请参考以下文章

求二进制数中1的个数

求一个整数存储在内存中的二进制中1的个数

编程之美学习笔记2.1求二进制数中1的个数

ural 1057 Amount of degrees 数位dp

求区间不同数的个数

二进制数的编码表示