2014-04-15 52 views

回答

1

ord("f") >> (bit_number - 1) & 1將工作

(將打印在ord('f')所有比特):

class bitwise(int): 

    def get(self, num): 
     return self >> (num - 1) & 1 

    def len(self): 
     return len(bin(self)[2:]) 


a = bitwise(ord('f')) 

print(a, bin(a)) 

for x in range(1, a.len()+1): 
    print(a.get(x)) 

印刷

102 0b1100110 
0 
1 
1 
0 
0 
1 
1 

說明:

此解決方案完全基於bitwise operations

a >> b改變所有位在a向右通過b位置和(a >> b) & 1得到最後一位的結果(目標之一,我們的情況下)。

+0

你能解釋一下嗎?>> x&1' – qwerty12345

+0

@ qwerty12345 updated – vaultah