1. 写一个函数返回参数二进制中 1 的个数。2.获取一个数二进制序列中所有的偶数位和奇数位。3. 输出一个整数的每一位。 4.两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同

    xiaoxiao2022-07-06  208

    #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<windows.h> //1. 写一个函数返回参数二进制中 1 的个数 int count_one_bits(unsigned int value) { int count = 0; while (value){ value = value & (value - 1); count++; } return count; } //2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。 void print_num(unsigned value) { int a[32] = { 0 }; int i = 0; int count = 0; while (value) { a[i++] = value % 2; value /= 2; count++; } printf("2019的二进制奇数位序列"); for (i = count - 1; i >= 0; i -= 2) { printf("%d", a[i]); } printf("\n"); printf("2019的二进制偶数位序列"); for (i = count - 2; i >= 0; i -= 2) { printf("%d", a[i]); } printf("\n"); } //3. 输出一个整数的每一位。 void print(int x) { if (x > 9){ print(x/10); } printf("%d ", x % 10); } //4.编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? int Dif_bits(int number_1,int number_2) { int number = number_1 ^ number_2; int count=count_one_bits(number); return count; } int main() { //1.计算15的二进制中1的位数 int value = 15; int result = count_one_bits(value); printf("%d 的二进制数中1的个数为 %d\n", value, result); //2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。 int number = 2019;//11111100011 print_num(number); //3. 输出一个整数的每一位。 int a = 1234; print(a); printf("\n"); //4.输入例子: 1999 2299 输出例子:7 int number_1 = 1999; int number_2 = 2299; int count=Dif_bits(number_1,number_2); printf("%d和%d的二进制有%d位不同\n", number_1,number_2, count); system("pause"); return 0; }

     

    最新回复(0)