一、写一个函数返回参数二进制中 1 的个数
比如: 00001111 中有 4 个 1
#include<stdio.h>
#include<string.h>
int a(int num)
{
int count=0;
while (num != 0)
{
if (num % 2 == 1)
{
count++;
}
num=num >> 1;
}
return count;
}
int main()
{
int n;
n=a(1010);
printf("%d", n);
}
二、输出一个整数的每一位
#include<stdio.h>
int main()
{
int num=456,t;
while (num!=0)
{
t = num % 10;
num = num / 10;
printf("%d", t);
}
}
三、两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
#include<stdio.h>
int main()
{
int a = 45623, b =1836,num,count=0;
num = a ^ b;
while (num)
{
if (num % 2 == 1)
{
count++;
}
num=num >> 1;
}
printf("%d", count);
}