把整数A转化成B,所需要改变的二进制位的个数是多少?
来源:互联网 发布:ccleaner清除数据 编辑:程序博客网 时间:2024/05/16 23:48
/*把整数A转化成B,所需要改变的二进制位的个数是多少?思路很简单,若要把A转化成B,查看二进制形式有多少个位不一样,所以用亦或就可以搞定,A^B,相同为0,不同为1,所以不同位则为1,只要查看A^B中有多少个1就可以了。如何查看有多少个1呢??我们知道按位与都是1时才为1,否则为0,所以只要C不为0,就一直跟1按位与,(从最右开始一位一位的比对下去)如果当前位是1,则count+1,如果当前位是0,则count+0;然后count右移一位继续计算。比如A=31和B=14二进制形式为A=00011111B=00001110C=A^B,即:C=00010001C&1 00000001==00000001C>>1.继续计算下去...*/#include <stdio.h>int bitSwapRequired(int a,int b){int count=0,c;for(c=a^b;c!=0;c=c>>1){count+=c&1;}return count;}int main(){int count;count=bitSwapRequired(31,14);printf("%d\n",count);return 0;}
- 把整数A转化成B,所需要改变的二进制位的个数是多少?
- 一个整数二进制位中1的个数
- CI5.5-计算将整数A变为整数B需要改变的二进制位数
- 确定需要改变几个位,才能把整数a变成整数b
- 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?
- 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?
- 整数a和整数b间1的个数
- 挑战面试编程:计算整数二进制位中1的个数
- 整数二进制位中1的个数【每日一题】
- 17_7_20:计算一个整数二进制位中1的个数。
- 计算一个整数二进制位中1的个数
- 计算一个整数二进制位中1的个数
- C/计算一个整数二进制位中1的个数
- 计算一个整数二进制位中1的个数
- 计算一个整数二进制位中1的个数
- 计算一个整数二进制位中1的个数
- 翻转整数的二进制位
- 翻转整数的二进制位
- 屏幕截图保存为文件
- svn常用命令
- Aswing JFrame
- ARM Linux 启动过程
- SetGestureConfig 函数-中文整理
- 把整数A转化成B,所需要改变的二进制位的个数是多少?
- C++多态性的问题
- mysql慢查询问题(Copying to tmp table)
- hdu 1394
- Linux如何自动获取IP地址及配置静态IP地址上网
- 异或,按位与
- cadence之通孔焊盘
- Oracle中UNION与UNION ALL的区别
- 电影和电视