[C语言]求两数二进制序列不同的位

来源:互联网 时间:1970-01-01

1.模除实现: #include<stdio.h> int main(){ int m, n, i, x, y ,count=0; printf("请输入m,n:"); scanf_s("%d%d", &m, &n); for (i = 31; i >= 0; i--) { x = m % 2; m = m / 2; y = n % 2; n = n / 2; if (x != y) //通过循环比较每一位是否相等 { count++; } } printf("不同的bit位有%d个/n",count); system("pause"); return 0;} 2.移位运算实现: #include<stdio.h> int main(){ int m, n; int i=32,count=0; printf("请输入m,n:"); scanf_s("%d%d", &m, &n); int j = 0; while (i) { int a, b; a = ((m >>j)& 1); //右移一位和1相与,再比较 b = ((n >>j)& 1); if (a != b) { count++; } j++; i--; } printf("不同的bit位有%d个/n", count); system("pause");}

 



相关阅读:
Top