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语言|求两个数的二进制中不同位的个数-创新互联
文章源于:https://www.cdcxhl.com/article44/ccccee.html

成都网站建设公司_创新互联,为您提供企业建站网站设计公司微信公众号定制网站App开发关键词优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设