#include<stdio.h>
int div = 0;
int rem = 0;
int count = 0;
int count_one_bits(unsigned int div)
{
int con = 0;
while (div >= 1)
{
con = div / 2;
rem = div % 2;
div = con;
if (1 == rem)
{
++count;
}
}
return 0;
}
int main()
{
printf("请输入一个数字");
scanf("%d", &div);
count_one_bits(div);
printf("%d", count);
return 0;
}
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
int num = 0;
int arr1[16] = { 0 };
int arr2[16] = { 0 };
printf("请输入一个数字:\n");
scanf("%d", &num);
for (i = 0, j = 0; j < 32; ++i, j += 2)
{
arr1[15 - j / 2] = (num >> j) & 1;
arr2[15 - i] = (num >> (2 * i + 1)) & 1;
}
printf("%d对应二进制的偶数位分别是:\n", num);
for (i = 0; i < 16; i++)
{
printf("%d", arr1[i]);
}
printf("\n");
printf("%d对应二进制的奇数位分别是:\n", num);
for (i = 0; i < 16; i++)
{
printf("%d", arr2[i]);
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int i = 0;
int num = 0;
int arr[32] = { 0 };
printf("请输入一个整数:\n");
scanf("%d", &num);
for (i = 0; i < 32; ++i)
{
arr[31 - i] = (num >> i) & 1;
}
printf("%d对应的二进制数字是:", num);
for (int i = 0; i < 32; ++i)
{
printf("%d", arr[i]);
}
printf("\n");
return 0;
}
int main()
{
int m = 0;
int n = 0;
int temp = 0;
int count = 0;
printf("请分别输入两个整数m,n\n");
scanf("%d%d", &m, &n);
temp = m ^ n;
int i = 0;
for (i = 0; i < 32; ++i)
{
if ((temp >> i) & 1)
++count;
}
printf("%d和%d二进制表达式中有%d位不同\n", m, n, count);
return 0;
}