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

标签 python algorithm

我正在寻找一种简单的算法,将两个 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/

相关文章:

php - 如何在数组中查找重复值的索引

javascript - 为什么我的 Shell 排序这么慢?

performance - 使用素数比循环更快地确定字谜?

java - 从数组元素的组合中求和

python - 查找图像包含其他图像

python - 我可以使用 lxml 只下载部分 Internet 网页吗?

python - numba jit 是否有可能减慢我的 gcd 执行速度?

python - 使用 py.test 但在命令行上排除测试列表?

python - 在循环语句中访问python类成员容器效率低吗?

mysql - 使用笛卡尔坐标系定位地点的适当算法是什么