我用十六进制表示:08
这是二进制文件:0000 1000
(位:7,6,5,4,3,2,1,0)
现在我想在python中制作一个位掩码,所以我的位置为3。
例如1
或更高(例如“”中的一个):0000 "1"000
只有这一点我该怎么办?
谢谢
答案 0 :(得分:7)
向右移动位索引以使该位在第0位,然后与1进行“与”将其隔离。
val = 0b01001000 # note the extra `1` to prove this works
pos = 3
bit = (val >> pos) & 1
print(bit)
输出1
答案 1 :(得分:4)
您可以这样做:
def get_bit(n, pos):
return (n >> pos) & 1
res = get_bit(n=8, pos=3)
# 1
将数字n
左移pos
位(>> pos
),然后掩盖其余部分(& 1
)。
Bitwise Operations on Integer Types上的文档可能会有帮助。