如何从字节字中获取所选位的值

时间:2014-04-15 08:30:46

标签: python

我尝试从变量a=bin(ord("f"))获取位值。是否存在方法,如a.get(5)或其他方法来做那些?

1 个答案:

答案 0 :(得分: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 >> ba中的所有位向右移b个位置,(a >> b) & 1获取结果中的最后一位(在我们的例子中为目标)。 / p>