如何从 8 位中取出第 3 位
How to take bit number 3 from 8 bits
我有十六进制的:08
这是二进制的:0000 1000
(位位置:7,6,5,4,3,2,1,0)
现在我想在 python 中制作一个位掩码,所以我有位位置 3。
这里的示例 1
或更好(“”中的那个):0000 "1"000
怎么办只有这一点?
谢谢
右移位索引使该位位于第 0 个位置,然后与 1 进行 AND 运算以隔离它。
val = 0b01001000 # note the extra `1` to prove this works
pos = 3
bit = (val >> pos) & 1
print(bit)
输出1
你可以这样做:
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 上的文档可能会有所帮助。
我有十六进制的:08
这是二进制的:0000 1000
(位位置:7,6,5,4,3,2,1,0)
现在我想在 python 中制作一个位掩码,所以我有位位置 3。
这里的示例 1
或更好(“”中的那个):0000 "1"000
怎么办只有这一点?
谢谢
右移位索引使该位位于第 0 个位置,然后与 1 进行 AND 运算以隔离它。
val = 0b01001000 # note the extra `1` to prove this works
pos = 3
bit = (val >> pos) & 1
print(bit)
输出1
你可以这样做:
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 上的文档可能会有所帮助。