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
解:第一步求这两个数的异或运算,将异或运算结果存起来;第二步统计这个运算结果当中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
相关文章推荐
- c语言:写一个函数,输入n,求斐波拉契数列的第n项(5种方法,层层优化)
- c语言:从标准输入读取几行输入,输入打印到标准输出上,加上行号
- c语言:编写折半查找函数
- c语言:创建一个数组,分别实现函数初始化数组、 清空数组、数组元素的逆置
- C语言:VS环境下的程序调试快捷键
- c语言:输出一个数组,判断是否存在问题,若有,请找出问题并改正
- c语言:宏的使用举例
- c语言:宏里面参数不加括号容易出错,在使用时尽量加括号及举例
- c语言:printf可以自动把两个字符串合并成一个字符串,并且可以合并多个
- c语言:#和##的区别及作用
- c语言:两种方法实现字符串拷贝strcpy
- C语言:VS环境下的程序快捷键大全以及Windows快捷键命令
- c语言:全局变量和局部变量的区别:通过调用函数举例
- c语言:字符串匹配的KMP算法
- c语言:模拟实现strstr库函数
- c语言:浪漫的putchar(),用数字向女朋友表白吧(ps:单身汪勿入)
- c语言:我国国民生产总值的年增长率为10%,10年后国民生产总值与现在相比增长多少
- c语言:存款利息计算,1000元,存5年,求五种方案存款五年后的本息和
- c语言:购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。
- c语言:整型和字符型的范围易错及分析