资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

C语言|求两个数的二进制中不同位的个数-创新互联

方法一:

成都创新互联专注于企业营销型网站建设、网站重做改版、老河口网站定制设计、自适应品牌网站建设、html5商城网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为老河口等各大城市提供网站开发制作服务。

结果:

//求两个数的二进制中不同位的个数
int diff() {
 int a = 0;
 int b = 0;
 int count = 0;
 int i = 0;
 scanf("%d %d", &a,&b);
 for (i = 0; i< 32; i++) {
     if (((a >>i) & 1) != ((b >>i) & 1)) {
         count++;
     }
 }
 return count;
}

int main() {
 int sum = diff();
 printf("%d\n", sum);
 return 0;
}

方法二(最优解):

这里用到了之前我博客写过的求一个二进制数有多少个1的方法

链接:http://t.csdn.cn/9EyfG

结果:

代码:

int diff2() {
 int a = 0;
 int b = 0;
 int count = 0;
 scanf("%d %d", &a, &b);
 //这里可以用按位异或^,相同的为0,不同的为1,
 //这样就只要统计按位异或后的1的个数
 int ret = a ^ b;
 int result = getnumCount(ret);
 return result;
}

int main() {
 int sum = diff2();
 printf("%d\n", sum);
 return 0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:C语言|求两个数的二进制中不同位的个数-创新互联
地址分享:http://cdkjz.cn/article/ccccee.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220