lintcode-将整数A转换为B-181
2015-09-12 23:09
183 查看
如果要将整数A转换为B,需要改变多少个bit位?
样例
如把31转换为14,需要改变2个bit位。
(31)10=(11111)2
(14)10=(01110)2
样例
如把31转换为14,需要改变2个bit位。
(31)10=(11111)2
(14)10=(01110)2
class Solution { public: int bitSwapRequired(int a, int b) { int tmp=a^b; //异或运算,对应位的值相同异或为零,不同为一,两数有多少位不同tmp中就有多少个一 int ret=0; while(tmp){ //转换成求tmp“1”的个数 tmp&=(tmp-1); ++ret; } return ret; } };
相关文章推荐
- 小火箭升空动画大全解
- hdu 3652 数位dp
- 第一篇 PHP开发环境搭建以及多站点配置(基于windows 7系统)
- git服务器gitlab之搭建和使用
- java的一些语法基础(二)
- 位运算总结&拾遗
- 风机桨叶故障诊断(五) 修改隐含层神经元个数的尝试
- 批量杀死多个进程 linux kill
- 线程(Thread)、线程池(ThreadPool)技术
- ipv6现状,加英文的中括号访问, ipv6测试http://test-ipv6.com
- 约梭芬杀人法(2015年9月12日)
- ipv6现状,加英文的中括号访问, ipv6测试http://test-ipv6.com
- BZOJ AC300题留念
- 数据挖掘中的数据
- TestLink和Mantis的集成
- 最小化安装的CentOS安装图形界面
- 带环链表
- VB6.0 Select Case语句
- Android学习记录:获取联系人
- Android SQLiteOpenHelper onUpgrade使用注意事项