面试题:输入一个整数,输出该整数二进制中1的个数。
2018-03-22 11:28
232 查看
代码:C语言
//输入一个整数,输出该整数二进制中1的个数。其中负数用补码表示。 //左移运算符是用来将一个数的各二进制位全部左移若干位。相当于乘法运算,表示为"<<" //右移运算符是用来将一个数的各二进制位全部右移若干位。相当于除法运算,表示为">>" #include<stdio.h> //整数与数字“1”进行与运算(&)。低位到高位循环,与运算,左进一位。 int CalOne1(int n) { int count=0; while(n) { if((n & 1)==1) ++count; n=n>>1; } return count; } //将一个书减去1,在与原数做与运算,就可以把原数二进制表示中最右边的一个1变成0 //这个数的二进制中有多少个1就可以进行多少次这样的运算。 int CalOne2(int n) { int count=0; while(n) { ++count; n=(n-1)&n; } return count; } int main() { int one ; int n; scanf("%d",&n); one=CalOne2(n); printf("%d",one); }
相关文章推荐
- 剑指offer——面试题10输入一个十进制整数,统计其中二进制1的个数
- 算法例题-求输入一个整数,输出对应二进制中1的个数。
- 2.4 题目:输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 18. 微软面试题:输入一个表示整数的字符串,把该字符串转换成整数并输出
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 位运算训练03—输入一个整数a,再输入两个整数p1,p2(p1,p2<32);将该整数的二进制表示方法中从右端开始的p1到p2位取反后输出
- 10--输入一个十进制的整数,转化为二进制,输出有多少个1
- 位运算训练04—输入一个整数a,再输入两个整数p(p<32),v(0|1);将该整数a的p位设置为v,输出修改后的该整数的二进制表示
- 输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 2.输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
- Linux_C练习:输入一个整数a,再输入两个整数,输出该整数的二进制表示方法中从右端开始给定位;
- 输入一个整数,求该整数的二进制中1的个数,并输出
- 第十三周-输入一个整数,要求输出对应的二进制形式。
- 28.整数的二进制表示中1的个数 题目:输入一个整数,求该整数的二进制表达中有多少个1。 例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 4.输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 面试题:写一个java应用程序,从键盘输入两个整数,然后输出它们的平方值及立方值
- 2、微软面试题:输入一个表示整数的字符串,把该字符串转换成整数并输出
- 2.2题目:输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.