如何计算两个二进制数中不同位数的数量?
- 内容介绍
- 相关推荐
本文共计257个文字,预计阅读时间需要2分钟。
伪原创可以改写为:模仿创新。以下是改写后的开头内容:
模仿创新,是一种在原有基础上进行改进和发展的创新方式。它通过借鉴他人的成功经验,结合自身特点,创造出新的产品或服务。这种创新方式在科技、文化、艺术等领域都有广泛应用。
#include<stdio.h>
//计算两个数二进制中的不同位的个数
//
//int count_diff_bit(int m, int n)
//{
// int i = 0,count=0;
// for (; i < 32; i++)
// {
// if ((n % 2) != (m % 2))
// count++;
// n /= 2, m /= 2;
// }
// return count;
//
//}
//int count_diff_bit(int m, int n)
//{
// int count = 0;
// for (int i=0;i<32;i++)
// {
// if ((m & 1) != (n & 1))
// count++;
// m = m >> 1, n = n >> 1;
// }
// return count;
//}
int count_diff_bit(int m, int n)
{
int count = 0;
int t = m ^ n;
while(t )
{
count++;
t = t & (t - 1);
}
return count;
}
int main()
{
int m = 0, n = 0;
scanf("%d %d", &m, &n);
int count = count_diff_bit(m, n);
printf("%d\n", count);
return 0;
}
本文共计257个文字,预计阅读时间需要2分钟。
伪原创可以改写为:模仿创新。以下是改写后的开头内容:
模仿创新,是一种在原有基础上进行改进和发展的创新方式。它通过借鉴他人的成功经验,结合自身特点,创造出新的产品或服务。这种创新方式在科技、文化、艺术等领域都有广泛应用。
#include<stdio.h>
//计算两个数二进制中的不同位的个数
//
//int count_diff_bit(int m, int n)
//{
// int i = 0,count=0;
// for (; i < 32; i++)
// {
// if ((n % 2) != (m % 2))
// count++;
// n /= 2, m /= 2;
// }
// return count;
//
//}
//int count_diff_bit(int m, int n)
//{
// int count = 0;
// for (int i=0;i<32;i++)
// {
// if ((m & 1) != (n & 1))
// count++;
// m = m >> 1, n = n >> 1;
// }
// return count;
//}
int count_diff_bit(int m, int n)
{
int count = 0;
int t = m ^ n;
while(t )
{
count++;
t = t & (t - 1);
}
return count;
}
int main()
{
int m = 0, n = 0;
scanf("%d %d", &m, &n);
int count = count_diff_bit(m, n);
printf("%d\n", count);
return 0;
}

