algorithm - 将两个或多个数字压缩成一个字节

标签 algorithm math

我认为这不太可能,但无论如何都值得一问。假设我有两个小数字(每个数字的范围从 0 到 11)。有没有一种方法可以将它们压缩成一个字节并稍后取回。四个大小相似的数字怎么样。

我需要的是:a1 + a2 = x。我只知道 x 并从中得到 a1、a2
对于第二部分:a1 + a2 + a3 + a4 = x。我只知道 x 并从中得到 a1、a2、a3、a4
注意:我知道你不能取消添加,只是说明我的问题。

x 必须是一个字节。 a1, a2, a3, a4 范围 [0, 11]。

最佳答案

这对于位掩码来说是微不足道的。想法是将字节划分为更小的单元,并将它们专用于不同的元素。

对于2个数,可以这样:前4位为number1,其余为number2。你会使用 number1 = (x & 0b11110000) >> 4 , number2 = (x & 0b00001111)检索值,和 x = (number1 << 4) | number2压缩它们。

关于algorithm - 将两个或多个数字压缩成一个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3499444/

相关文章:

javascript - 具有相等值的数组的 Math.max 方法

javascript - 具有多种形式输入值的数学

java - 添加存储在字符串变量中的数字

algorithm - 如何设计软件工作流程图?

algorithm - 寻找最长复合词的时间复杂度

c# - 使用 mathdotnet 进行互相关

arrays - 给定一个数组,我能否在 O(n) 中找到最长的范围,其端点是范围内的最大值?

python - ds python导入数学模块

c++ - 在扩展字符串中查找第 k 个元素

arrays - 径向基网络字符识别