一行中给定两个数字
输出这两个数字中bit不同的个数
15 8
3
15的二进制表示中后四位是 1111 , 3的二进制表示中后四位是 0011,因此有两位不同
a, b = map(lambda c: bin(int(c)).replace("0b", "").rjust(32, '0'), input().split()) print(sum(map(lambda c: a[c] != b[c], range(32))))
第一行:统一格式,将a,b转化成32位二进制格式字符串
第二行,对32位分别进行计算判断是相同,将结果累加。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题