我正在寻找一种简单的算法,将两个 2 字节整数“组合”成一个唯一的 4 字节整数。
这两个 2 字节整数都是 0..65535
范围内的整数正数。
我想创建一个 4bytes 整数,它是两者的精确组合,以一种易于实现的方式:
(1)给定两个 2 字节整数 --> 计算该 4 字节整数的值。
(2) 给定 4bytes 整数 --> 解析两个 2bytes 整数的内容。
知道如何在 python
中实现这个吗?
最佳答案
怎么样:
def combine(n, m):
return (n << 16) | m
def extract(c):
return (c >> 16), c & 0xffff
此解决方案将一个 2 字节整数放在 32 位字的上半部分,另一个放在下半部分。为了提取值,只需取单词的上半部分 (c >> 16
) 和下半部分 (c & 0xffff
)。
关于Python:从两个整数创建一个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6564723/