Program.10(操作符练习)

    xiaoxiao2022-07-05  160

    1.写一个函数返回参数二进制中 1 的个数 比如: 15       0000 1111       4 个 1 程序原型: int  count_one_bits(unsigned int value) {        // 返回 1的位数 }

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int count_one_bits(unsigned int num) { int cout = 0; while (num) { cout++; num = num&(num - 1); } return cout; } int main() { int num = 0; printf("请输入: "); scanf("%d", &num); int ret = 0; ret = count_one_bits(num); printf("二进制中1的个数=%d\n",ret); system("pause"); return 0; } #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int count_one_bits(unsigned int num) { int cout = 0; while (num) { if (num % 2 == 1) { cout++; } num = num / 2; } return cout; } int main() { int num = 0; printf("请输入: "); scanf("%d", &num); int ret = 0; ret = count_one_bits(num); printf("二进制中1的个数=%d\n", ret); system("pause"); return 0; }

    2.获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stdlib.h> int main() { int num = 0; int a[32] = { 0 }; scanf("%d", &num); int cout = 0; int i = 0; while (num) { a[i] = num % 2; num = num / 2; cout++; i++; } printf("奇数序列:\n"); for(i = cout; i >= 0; i = i - 2) { printf("%d ", a[i]); } printf("\n"); printf("偶数序列: \n"); for (i = cout - 1; i >= 0; i = i - 2) { printf("%d ", a[i]); } printf("\n"); system("pause"); return 0; }

     

    3. 输出一个整数的每一位。

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stdlib.h> void printfnum(int num) { int ret = 0; while (num>0) { ret = num % 10; printf("%d ", ret); num = num / 10; } printf("\n"); } int main() { int num = 0; printf("请输入一个整数 :"); scanf("%d", &num); printf("打印每一位: "); printfnum(num); system("pause"); return 0; }

    4.编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?  输入例子:  1999 2299 输出例子:   7

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stdlib.h> void PrintfNum(int a,int b) { int cout = 0; int i = 0; for (i = 0; i < 32; i++) { int ret = 0; ret = (a >> i) ^ (b >> i);//分别让每一位进行异或 if ((ret & 1) == 1) //判断是否为1 cout++; } printf("有%d个比特位不同\n",cout); } int main() { int a = 0; int b = 0; printf("请输入a: "); scanf("%d", &a); printf("请输入b: "); scanf("%d", &b); PrintfNum(a,b); system("pause"); return 0; }

     

     

    最新回复(0)