Python:从两个整数创建单个整数?

时间:2011-07-03 18:26:21

标签: python algorithm

我正在寻找一种简单的算法,它将两个2字节整数“组合”成一个唯一的4字节整数。

两个2字节整数都是0..65535范围内的整数正数。

我想创建一个 4字节整数,这是两者的精确组合,以便于以下方式:

给定两个2字节整数

(1) - >计算该4字节整数的值。

(2)给定4字节整数 - >解析两个2bytes整数的内容。

知道如何在python中实现这一目标吗?

2 个答案:

答案 0 :(得分:16)

怎么样:

def combine(n, m):
    return (n << 16) | m

def extract(c):
    return (c >> 16), c & 0xffff

该解决方案将一个2字节整数放在32位字的上半部分中,另一个放在下半部分中。为了提取值,只需单词(c >> 16)的上半部分和下半部分c & 0xffff)。

答案 1 :(得分:8)

>>> i1, i2 = 345, 12
>>> i1 * 0x10000 + i2
22609932
>>> divmod(22609932, 0x10000)
(345, 12)