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

简介: 题目内容:两个int(32)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299输出例子:7

题目内容:两个int(32)整数m和n的二进制表达中,有多少个位(bit)不同?

输入例子:

1999 2299

输出例子:

7


解题思路:

1.先将m和n进行按位异或,此时m和n相同的二进制比特位清零,不同的二进制比特位1

2.统计异或完后结果的二进制比特位中有多少个1即可

#include<stdio.h>
int calc_diff_bit(int m, int n)
{
  int tmp = m ^ n;
  int count = 0;
  while (tmp)
  {
  tmp = tmp & (tmp - 1);
  count++;
  }
  return count;
}
int main()
{
  int m, n;
  while (scanf("%d %d", &m, &n) == 2)
  {
  printf("%d\n", calc_diff_bit(m, n));
  }
  return 0;
}
相关文章
|
7月前
二进制中1的个数
二进制中1的个数
45 0
|
1月前
二进制数从0开始的前几个数
二进制数从0开始的前几个数:
210 0
|
7月前
|
C++
Acwing.26 二进制中1的个数
Acwing.26 二进制中1的个数
|
7月前
|
算法
算法题 — 整数转二进制,查找其中1的数量
算法题 — 整数转二进制,查找其中1的数量
54 0
统计两个整数所对应的二进制数中的不同位数的个数
统计两个整数所对应的二进制数中的不同位数的个数
45 0
计算二进制中1的个数
计算二进制中1的个数
65 0
|
算法
34.二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
88 0
34.二进制中1的个数
|
存储 机器学习/深度学习
求一个整数存储在内存中的二进制中1的个数;例如15有4个1(三种方法详解)
求一个整数存储在内存中的二进制中1的个数;例如15有4个1(三种方法详解)
144 0
求一个整数存储在内存中的二进制中1的个数;例如15有4个1(三种方法详解)
|
存储 前端开发 程序员
二进制中1的个数(下)
二进制中1的个数(下)
二进制中1的个数(下)

热门文章

最新文章