本文主要是介绍牛客网《剑指Offer》 二进制中1的个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路
负数用补码,其实就是求一个数据在计算机中是存储是怎么样子的。用位运算,就能很好实现。
class Solution {
public:int NumberOf1(int n) {int count = 0;int flag = 1;while (flag != 0) {if ((n & flag) != 0) {count++;}flag = flag << 1;}return count;}
};
一般用左移,左移为逻辑左移。移到最后,便为0了。
这篇关于牛客网《剑指Offer》 二进制中1的个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!