python - 获取两个二进制数字之间不同的位数
可以使用异或运算符(^)来获取两个二进制数字之间不同的位数。
异或运算符对两个二进制数字的对应位进行比较,如果两个位不同,则结果为1;如果两个位相同,则结果为0。
以下是一个示例代码,演示了如何获取两个二进制数字之间不同的位数:
def count_different_bits(num1, num2):
# 异或运算
xor_result = num1 ^ num2
# 统计不同位数的个数
count = 0
while xor_result != 0:
# 每次右移一位,判断最低位是否为1
if xor_result & 1:
count += 1
xor_result >>= 1
return count
# 测试示例
num1 = 0b101011
num2 = 0b110101
result = count_different_bits(num1, num2)
print(f"不同位数的个数为:{result}")
输出结果为:
不同位数的个数为:4
在示例中,num1和num2是两个二进制数字,使用异或运算符得到xor_result。然后通过循环右移xor_result,判断最低位是否为1,从而统计不同位数的个数。最后返回不同位数的个数。
原文地址: https://www.cveoy.top/t/topic/jclr 著作权归作者所有。请勿转载和采集!