您的位置:首页 > 编程语言 > C语言/C++

剑指offer第十一题【二进制中1的个数】c++实现

2015-10-14 23:03 405 查看
二进制中1的个数

参与人数:3696时间限制:1秒空间限制:32768K
通过比例:32.22%
最佳记录:0 ms|8552K(来自  me_wm


题目描述

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
这个题没有什么难度,正数就一直和1做与运算为1就计数,没什么说的。
主要是负数,我这里直接强制转换为unsigned int 然后在计算就和整正数一样了。
int NumberOf1(int n) {
int res=0;
unsigned int number=(unsigned int)n;
while(number>0){
if(number&1){
res++;
}
number>>=1;
}
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 剑指offer 算法