Python二进制操作 - 组合高阶和低阶位

时间:2018-05-21 14:38:09

标签: python binary endianness bits

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

  

00000000fe000000< - 高阶32位

     

000000000001009f< - 低阶32位

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

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

1 个答案:

答案 0 :(得分:1)

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

high = 0x00000000fe000000
low = 0x000000000001009f

result = (high << 32) | low

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

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

high = result >> 32
带有适当掩码的

&

low = result & 0xffffffff