用C语言编一个程序,有一个二进制串(比如01101011),计算出其中1的个数
2007-11-05 15:29
441 查看
int func(x)
{
int countx = 0;
while(x)
{
countx++;
x = x&(x-1);
}
return countx;
}
x-1:最右边的一个1变成0了,该位后面的位有都从0变成1了,但和x与仍变成0了
因此每 x = x&(x-1); 一次, 1的数量就减少一次
{
int countx = 0;
while(x)
{
countx++;
x = x&(x-1);
}
return countx;
}
x-1:最右边的一个1变成0了,该位后面的位有都从0变成1了,但和x与仍变成0了
因此每 x = x&(x-1); 一次, 1的数量就减少一次
相关文章推荐
- 作业五-设计一个程序计算输入的两个数的和与差,要求自定义一个函数 sum_diff(float op1, float op2, float *psum, float *pdiff),其中 op1 和 op2 是输入的两个数,*psum 和*pdiff 是计算得出的和与差.
- 谁能用C语言给我写一个可以计算加减乘除的程序(只用算整数就OK)
- 谁能跟我编写一个程序(C语言)题目是编写一个函数计算sum(n)=1+2+3+。。。+n(n>=1)
- 赛码网,简单计算,用C语言自己实现的一个程序,仅供参考
- 用C语言编写一个计算薪水的程序
- c语言:编写一个程序,输入a,b,c三个值,输出其中最大者
- c语言:编写一个程序,输入a,b,c三个值,输出其中最大者
- 【C语言】编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替
- 5.7 编写一个程序,其中有一个函数指针*parea,通过它分别指向计算圆的面积函数 circle 和矩形面积函数 rect 来计算给定圆的面积和矩形面积。
- 用c语言实现输入一个十进制数,计算其转换为二进制数后其中包含1的个数
- 【C语言】有一个3*4的矩阵,要求编一个程序求出其中值最大的那个元素的值, 以及其所在的行号和列号。
- [C语言]一个计算平均学分绩点并输出的程序
- c语言:编写一个将输入复制到输出的程序,并将其中的多个空格用一个空格代替
- 自己写的程序expr,以计算从命令行输入的逆波尔表达式的值,其中每个运算符或操作数用一个单独的参数表示
- C语言:编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- C语言:编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- Daphne 以10%的单利息投资了100美元(也就是说,每年投资赢得的利息等于原始投资的10%)。 Deirdre 则以每年5%的复合利息投资了100美元(也就是说,利息是当前结余的5%,其中包括以前的利息)。 编写一个程序,计算需要多少年deirdre
- 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc
- 用C语言做的 一个整人的小程序