如何计算两个二进制数中不同位数的数量?

更新于
2026-10-03 23:39:28
0阅读来源:SEO基础
  • 内容介绍
  • 相关推荐

本文共计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; }