Python: 如何将两个整数合成一个整数?

3 投票
2 回答
554 浏览
提问于 2025-04-16 20:45

我在寻找一个简单的算法,可以把两个2字节的整数合并成一个独特的4字节整数。

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

我想创建一个单一的4字节整数,它能准确地结合这两个数,并且方便地做到:

(1) 给定这两个2字节的整数,能够计算出这个4字节整数的值。

(2) 给定这个4字节整数,能够解析出这两个2字节整数的内容。

有没有什么方法可以在python中实现这个?

2 个回答

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

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言进行解释。

16

这样做怎么样:

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

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

这个方法把两个2字节的整数放在一个32位的数字中,上半部分放一个,下半部分放另一个。要提取这些值,只需要取出上半部分的数字(用c >> 16),和下半部分的数字(用c & 0xffff)。

撰写回答