求两个二进制数中不同位的个数

两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?代码如下:

#include<stdio.h>
int main()
{
    
    
 int a = 0; 
    int b = 0;
 int count = 0;
 printf("请输入a和b:\n");
 scanf("%d%d", &a, &b);
 while (a != 0 || b != 0){
    
        //当其中一个数不为 0 就不终止循环
  if ((a & 1) != (b & 1)){
    
    
   count++;
  }
  a = a >> 1;
  b = b >> 1;
 }
 printf("a和b中不同位的个数为:\n", count);
 return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/WEIYANGBIN/article/details/105941168