#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int count_one_bits(unsigned int value){
int count = 0;
for (int i = value; i != 0; i >>= 1) {
if ((i & 1) == 1) {
count++;
}
}
return count;
}
int main() {
int x,y;
printf("输入一个数求其二进制中1的个数:");
scanf("%d", &x);
y = count_one_bits(x);
printf("该数二进制中1的个数为:%d\n", y);
system("pause");
return 0;
}
2 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
int i = 0 , num = 0;
printf("获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列:");
scanf("%d", &num);
printf("奇数序列为:");
for (i = 31; i >= 1; i -= 2){
printf("%d ", (num >> i) & 1);
}
printf("\n");
printf("偶数序列为:");
for (i = 30; i >= 0; i -= 2){
printf("%d ", (num >> i) & 1);
}
printf("\n");
system("pause");
return 0;
}
3 输出一个整数的每一位。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void fun(int n) {
if (n > 9) {
fun(n / 10);
}
printf("%d ", n % 10);
}
int main() {
int x;
printf("请输入一个数:");
scanf("%d", &x);
printf("其每一位分别为:");
fun(x);
printf("\n");
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int different_bit(int x, int y)
{
int i = 0;
int count = 0;
x ^= y;
for (i = 0; i < 32; i++)
{
if (((x >> i) & 1) == 1)
{
count++;
}
}
return count;
}
int main(){
int m, n, num;
printf("请输入两个整数(m n):");
scanf("%d %d", &m, &n);
num = different_bit(m, n);
printf("%d和%d二进制bit位中有%d个比特位不同\n", m, n, num);
system("pause");
return 0;
}