第十题 求一个数中二进制有多少个 一
2017-08-02 13:58
127 查看
题目:数入一个整数,输出这个数中二进制的一的个数
每次判断最右边的数是否为一,然后右移一位的方法不可取,因为负数经过多次右移之后会变成0xFFFF FFFF,程序就会变成死循环,用一个比较好的方法,用输入的数和这个数减一的值做与运算,会将这个数最右边的一变为零,更新这个数,很快就能求出这个数中有多少个一。
int Number0f1(int n)
{
int count = 0;
while(n)
{
n = n & (n-1);
count ++;
}
return count;
}
每次判断最右边的数是否为一,然后右移一位的方法不可取,因为负数经过多次右移之后会变成0xFFFF FFFF,程序就会变成死循环,用一个比较好的方法,用输入的数和这个数减一的值做与运算,会将这个数最右边的一变为零,更新这个数,很快就能求出这个数中有多少个一。
int Number0f1(int n)
{
int count = 0;
while(n)
{
n = n & (n-1);
count ++;
}
return count;
}
相关文章推荐
- 给定一个整数N,求N!末尾有多少个0?N!的二进制表示中最低1的位置?
- 位操作:一个整数的二进制表示中 有多少个1?
- PHP 输入一个整数,求该整数的二进制表达中有多少个1
- 判断一个整数中有多少个1(二进制)--LeetCode 191
- 23:一个整数的二进制表示中有多少个1
- 计算一个数的二进制表示中有多少个1
- 1.写一个函数返回参数二进制中 1 的个数;2..获取一个数二进制序列中所有的偶数位和奇数位;3. 输出一个整数的每一位;4.两个int整数的二进制表达中,有多少个位不同
- 统计一个数中的二进制数值中有多少…
- 1.输出一个整数的每一位。2. 编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 191. Number of 1 Bits (计算一个整数的二进制表示中有多少个1)
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?求N!的二进制表示中最低位1的位置。
- 10--输入一个十进制的整数,转化为二进制,输出有多少个1
- 一个十进制整数转换成二进制含多少个1
- 如何获得一个整数的二进制表达中有多少个1?
- 给定一个整数,求它的二进制表示中有多少个1。
- 求一个unsigned int 数的二进制表示中有多少个1?
- 算法的强大——快速计算一个正二进制整数中包含多少个1
- 28.整数的二进制表示中1的个数 题目:输入一个整数,求该整数的二进制表达中有多少个1。 例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 如何判断一个整数位的二进制中有多少个1
- 一个unsigned int 数的二进制表示中有多少个1