Python: 如何将两个整数合成一个整数?
我在寻找一个简单的算法,可以把两个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
)。