計算整數化為二進位制一的個數

2021-06-04 22:35:10 字數 690 閱讀 9657

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)

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...

二進位制 二進位制中1的個數

題目 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函式輸出 2。示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 0000000...

整數二進位制中1的個數

輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。如果是0,返回0 如果是正整數,除二取餘法 如果是負數 3.1 如果是 2147483648 int表示最大絕對值的負數 其補碼是1000 0000 0000 0000 0000 0000 0000 0000,故返回 1 3.2 其他...