题目:写一个函数返回参数二进制中 1 的个数
方法1:
我自己写的,运用'%'和'/',感觉挺简单的,
初入'C',以做一个例题有感。
。int count_one_bit(int num)
{
unsigned int count=0;
while(num)
{
if(num%2==1)
count++;
num=num/2;
}
return count;
}
int main()
{
int n = 0;
int count = 0;
scanf("%d", &n);
count = count_one_bit(n);
printf("%d\n", count);
system("pause");
return 0;
}
方法2:
运用移位'>>',我还不太熟悉运用移位操作符,以后得加强练习。
int count_one_bit(int num)
{
int count = 0;
int i = 32;
while (i--)
{
if (num & 1 == 1)
count++;
num = num >> 1;
}
return count;
}
方法3:
运用'&'和移位,这个真的不易想到,我想得数学好才能想到吧!怪我数学不好,得加强算法学习,多接触,积累经验,
电脑资料
《初入'C',以做一个例题有感。》(http://meiwen.anslib.com)。int count_one_bit(int num)
{
int count = 0;
while (num)
{
count++;
num = num & (num - 1);
}
return count;
}
总结: 初入'C',感觉写代码好具有逻辑性呀!好奇妙的感觉!刚刚百度了一下,上面陈述了好多种方法,但真的太弱了,有些竟然连看都还看不懂,好忧伤!慢慢来吧!
已经选择了,决定了走程序员这条路,就不要抱怨,不要再偷懒,不要找各种借口和理由放纵自己,远离电影,少靠近床,踏踏实实努力学习一年!
我一直相信:努力了不一定会成功,但不努力一定不会成功!无论最后结果如何,但只有现在努力了,以后,我才不会怨恨自己,不会悔恨,心里也是美好的。