【发布时间】:2020-12-01 19:49:58
【问题描述】:
我有一个来自硬件设备的整数,其中嵌入了多个值作为任意长度的位字段。
例如,我有一个“状态”值,它是一个 16 位整数,其中包含多个值。一个是从第三位开始的 4 位整数。
我正在使用我编写的函数提取它:
def vnGetFieldFromStatus(status):
return ((status & 0b0001111000000000)>> 9)
我相信这一切正常。
是否有一种通用的 Python 方法来获取从字节 j 开始的 i 字节组成的 int?
【问题讨论】:
-
字节还是位?您的标题和问题的第一部分谈论的是位,但最后一句谈论的是字节。
-
你知道如何从 i=4 和 j=9 构造数字 0b1111000000000 吗?
-
这能回答你的问题吗? Algorithm to generate bit mask
-
mkrieger 感谢您提出的有用问题。我想我会取 2 的 i 次方,减去 1,然后将其左移 9 位。所以这应该让我创建面具。我会玩一下,也会检查你留下的链接。