Python 二元运算 - 合并高位和低位

Python binary operations - combine higher and lower order bits

我有两个十六进制值(以字符串形式提供):

00000000fe000000 <- high order 32-bits

000000000001009f <- low order 32-bits

它们需要组合成一个值,理想情况下 - 像值 [0:15] 一样方便地寻址(返回位 0 到 15,从右到左)。

在 Python 中执行此操作的最佳方法是什么?

对于两个整数,您只需使用移位和 |:

high = 0x00000000fe000000
low = 0x000000000001009f

result = (high << 32) | low

对于任何其他输入,我建议先将它们转换为 ints,然后再将结果转换回您想要的任何形式。

要检索原始片段,请反向使用位移位

high = result >> 32

& 使用适当的掩码:

low = result & 0xffffffff