我尝试从变量a=bin(ord("f"))
获取位值。是否存在方法,如a.get(5)
或其他方法来做那些?
答案 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 >> b
将a
中的所有位向右移b
个位置,(a >> b) & 1
获取结果中的最后一位(在我们的例子中为目标)。 / p>