首页 > 解决方案 > Python二进制操作 - 结合高阶和低阶位

问题描述

我有两个十六进制值(作为字符串提供):

00000000fe000000 <- 高位 32 位

000000000001009f <- 低位 32 位

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

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

标签: pythonbinaryendiannessbits

解决方案


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

high = 0x00000000fe000000
low = 0x000000000001009f

result = (high << 32) | low

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

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

high = result >> 32

&带有适当的面具:

low = result & 0xffffffff

推荐阅读