本文主要是介绍【LintCode 简单】181. 将整数A转换为B,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.问题描述:
如果要将整数A转换为B,需要改变多少个bit位?
2.样例:
如把31转换为14,需要改变2个bit位。
(31)10=(11111)2
(14)10=(01110)2
class Solution:"""@param: a: An integer@param: b: An integer@return: An integer"""def bitSwapRequired(self, a, b):# write your code herea=a^bcount=0for i in range(32):if a&1:count+=1a=a>>1return count
补充位运算的内容:
&:按位与操作,只有 1 &1 为1,其他情况为0。可用于进位运算。
|:按位或操作,只有 0|0为0,其他情况为1。
~:逐位取反。
^:异或,相同为0,相异为1。可用于加操作(不包括进位项)。
<<:左移操作,2的幂相关
>>:右移操作,2的幂相关
这篇关于【LintCode 简单】181. 将整数A转换为B的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!