首页 > 试题广场 >

懂二进制

[编程题]懂二进制
  • 热度指数:4620 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?
示例1

输入

3,5

输出

2

说明

3的二进制为11,5的二进制为101,总共有2位不同 
示例2

输入

1999,2299

输出

7
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param m int整型 
# @param n int整型 
# @return int整型
#
class Solution:
    def countBitDiff(self , m: int, n: int) -> int:
        # write code here
        tmp = m ^n
        # print(bin(tmp))

        return bin(tmp)[2:].count('1')

发表于 2024-04-03 23:28:31 回复(0)
class Solution:
    def countBitDiff(self , m: int, n: int) -> int:
        # write code here
        ret = 0
        xor = m ^ n
        while xor != 0:
            if xor & 1:
                ret += 1
            xor >>= 1
        return ret

发表于 2022-09-29 02:06:19 回复(1)

问题信息

上传者:牛客301499号
难度:
2条回答 3853浏览

热门推荐

通过挑战的用户

查看代码
懂二进制