Python-统计二进制数中1的个数

# coding=utf-8

"""
question:
将一个整数转换为二进制形式,统计二进制中 1 的个数,如果是负数,按补码统计。
设一个整数为 4 个字节
"""


def count_bin_one(num):
    if num < 0:
        num &= 0xffffffff  # 将内存中负数的二进制变成对应正数

    bits = len(bin(num)) - 2  # 计算二进制数的位数
    count = 0  # 计数值
    for i in range(bits):
        if num & 2 ** i:  # 按位相与,判断是否为 1
            count += 1

    return count


if __name__ == '__main__':
    print(count_bin_one(-1))

 

发布了29 篇原创文章 · 获赞 16 · 访问量 978
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览