题目
整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。
示例1:
输入:A = 29 (或者0b11101), B = 15(或者0b01111)
输出:2
分析: 二进制位操作,先对两个数的二进制进行异或操作,按位相同为0, 不同为1,得到结果后统计1的个数,可以通过对异或结果右移分别与1进行按位与判断,结果位1则计数加1
class Solution:
def convertInteger(self, A: int, B: int) -> int:
tmp_b = A^B
count = 0
for i in range(32):
if tmp_b & 1:
count += 1
tmp_b = tmp_b >> 1
return count