首页 > 代码库 > LintCode刷题笔记--Flip Bits

LintCode刷题笔记--Flip Bits

Flip Bits:

题目:Determine the number of bits required to flip if you want to convert integer to integer m.

解题思路:

给出两个数字a和b,返回两个数字中需要转换的内容
这道题主要是考察位运算的几种操作:
1.首先使用异或运算来确定在哪些位置上两个数字的二进制位不一样的数字上都填上1,得到bit=a^b.
2. 之后在与1进行与运算,如果bit的最后一位是1那么就得到1,否则为0
3. 将bit向右移动一位,比如00001001 –> 00000100, 这样每次都能检查到最后一位是0或者是1
4.反复如上过程,直到bit为0;

参考代码:

技术分享

 

LintCode刷题笔记--Flip Bits