思路分析:辗转相除法,拿当前值取余2,如果等于1,列表中append1,如果等于0,append0
#实现bin
def my_bin(num):
lst = []
while num:
if num % 2 == 1:
lst.append('1')
else:
lst.append('0')
num = num >> 1
lst = lst[::-1]
return ''.join(lst)
print(bin(10))
if __name__ == "__main__":
print(my_bin(3))
print(my_bin(8))
print(my_bin(10))
#下面这段代码计算二进制中1的个数 在pycharm中可以获得正确的结果 但是在jupyter中会一直执行没有输出
def one_count(num):
flag = 0
while num > 0:
if num & 1 == 1:
flag = flag + 1
num = num >> 1
return flag
if __name__ == "__main__":
print(one_count(0b1111011))