python位运算

查找输入整数二进制中1的个数

http://www.nowcoder.com/questionTerminal/1b46eb4cf3fa49b9965ac3c2c1caf5ad

位运算基础案例,二进制位运算符 a >> n 等同于 a // 2^n , 反之 a << n 等同于 a * 2^n,即为在二进制末尾补零。
‘与’运算 a & b:二者的二进制表示中的相同位置处都为1时运算后的数为1,如
7 => 111, 2 => 10,二者倒数第二个位置都为1,其他位置都不满足条件为0,因此 7 & 2 = ‘010’ = 2,同理求 某一整数n的二进制表达中有几个1,可用 n & 1 来计算,每运算更新一次, 对 n >>= 1 位运算处理,效果为消去二进制表示中的最后一位,如 7 >> 1 = 3 的过程为 111 --> 11,也等同于 7 // 2 = 3。

while True:
    try:
        n = int(input())
        count = 0
        while n:
            count += (n & 1)
            n >>= 1
        print(count)
    except:
        break
全部评论
7&2不是等于2吗🤔
点赞 回复 分享
发布于 2021-04-03 01:36
我终于搞懂位运算了,感谢!
点赞 回复 分享
发布于 2021-12-13 22:15

相关推荐

点赞 评论 收藏
分享
10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
46 8 评论
分享
牛客网
牛客企业服务