我认为这不太可能,但无论如何都值得一问。假设我有两个小数字(每个数字的范围从 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/