def myfun(a):
c = 0
while a > 0:
a = a & (a - 1)
c += 1
return c
def myfun2(a):
c = 0
while a > 0:
b = a & 1
if b == 1:
c += 1
a = a >> 1
return c
def myfun3(x):
x = (0x55555555 & x) + ((0xAAAAAAAA & x)>>1)
x = (0x33333333 & x) + ((0xCCCCCCCC & x)>>2)
x = (0x0F0F0F0F & x) + ((0xF0F0F0F0 & x)>>4)
x = (0x00FF00FF & x) + ((0xFF00FF00 & x)>>8)
x = (0x0000FFFF & x) + ((0xFFFF0000 & x)>>16)
return x
a = 7
c = myfun2(a)
print(c)
c = myfun(a)
print(c)
c = myfun3(a)
print(c)
计算整数化为二进制一的个数
最新推荐文章于 2020-04-16 21:37:41 发布