剑指offer面试题10:二进制中1的个数

来源:互联网 发布:单片机设计大赛作品 编辑:程序博客网 时间:2024/05/22 08:26

题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。
思路:一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0。

#include <exception>#include <iostream>using namespace std;int numberof1(int n) {  int count = 0;  while (n) {    ++count;    n &= (n - 1);  }  return count;}int main() {  int n = 0;  cout << n << endl;  int result = numberof1(n);  cout << result << endl;  return 0;}
0 0
原创粉丝点击