算法-求一个整数的二进制数里有几个1

程序如下:

n=11

count = 0

while (n > 0):

count+=1

print(count,(n - 1) , n)

n = (n - 1) & n

print(count)

求一个整数的二进制数里有几个1

运行结果:1 10 11

2 9 10

3 7 8

3

分析:11--1011

10--1010

9--1001

8--1000

7--0111

10 & 11 1010 & 1011=1010 (1010的十进制值为10)

9 & 10 1001 & 1010=1000 (1000的十进制值是8)

7 & 8 0111 & 1000=0000 (0000的十进制值是0)

至此跳出n不大于0,程序跳出while循环.

所以11(二进制1011表示),中有3个1

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();