/*
main Definition
Created by taotao man on 2015-10-29
brief: 实现一个函数,输入整数,输出该数的二进制表示中1的个数。
date:
// 修改记录:
add SetA();
change GetA();
*/
#include <stdio.h>
//
#include <iostream>
using namespace std;
int NumberOf1(int n)
{
/*
m >> n 表示: 把m 右移 n位
对于右移运算符 >>
如果数字原先是一个正数,则右移之后在最左边补n个0;
如果数字原先是一个负数,那么右移之后最左边补n个1。
一个整数的二进制,如果该整数和1做与运算,结果是1,表示该整数最右边一位是1,否则是0
*/
int count = 0;
while(n)
{
if(n & 1)
count++;
n = n >> 1;
}
return count;
}
void Test(int n, int expected)
{
if(NumberOf1(n) == expected)
printf("实验成功\n");
else
printf("实验失败\n");
}
int main(int argc, char *argv[])
{
Test(9, 2);
//
system("pause");
return 0;
}
面试题10:二进制中1的个数
最新推荐文章于 2020-11-07 10:08:59 发布