您的位置:首页 > 编程语言 > C语言/C++

c语言:输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n

2016-05-29 13:39 513 查看
输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n?
解:第一步求这两个数的异或运算,将异或运算结果存起来;第二步统计这个运算结果当中1的位数
程序:

#include<stdio.h>

int count(int m,int n)
{
int t,count=0;
t = m^n;
while (t)
{
count++;
t=t&(t-1);
}
return count;
}

int main()
{
int num1,num2,ret=0;
printf("请输入两个整数:");
scanf("%d,%d", &num1,&num2);
ret = count(num1,num2);
printf("改变%d的二进制表示中的%d位才能得到%d\n",num1,ret,num2);
return 0;
}

结果:
请输入两个整数:10,13
改变10的二进制表示中的3位才能得到13
请按任意键继续. . .

本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1742006
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: