本文共 580 字,大约阅读时间需要 1 分钟。
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 here a=a^b count=0 for i in range(32): if a&1: count+=1 a=a>>1 return count
补充位运算的内容:
&:按位与操作,只有 1 &1 为1,其他情况为0。可用于进位运算。
|:按位或操作,只有 0|0为0,其他情况为1。
~:逐位取反。
^:异或,相同为0,相异为1。可用于加操作(不包括进位项)。
<<:左移操作,2的幂相关
>>:右移操作,2的幂相关
转载地址:http://iouii.baihongyu.com/