用很少的给定信息导出特定比特流

时间:2014-04-15 11:25:05

标签: algorithm bitmap binary bit-manipulation bit

我对算法设计有疑问。

假设我在编码器中有 S R B 这三个比特流,输出为D. br /> 我的问题是如何在解码器中导出 S B ,只有给定的 D R

我的初步想法在下面用xor(^)操作, D = 1001

Encoder:
S      |R      |X=S^R  |B      |D=X^B
0001   |1010   |1011   |0010   |1001

此外,在解码器中,它只接收 D R ,如下所示,

Decoder:
D      |R      |
1001   |1010   |

但基本上 X = S ^ R X = B ^ D ,因此 S ^ R = B ^ D 或者 > D ^ R = S ^ B 。因此,我不知道如何分别得出 S B 。 是否有人可以提供您已知的概念,思想或算法来处理这个问题 非常感谢:))

1 个答案:

答案 0 :(得分:1)

你不能。 D = S ^ B ^ R,给定D和R,你可以得到S ^ B(如你所示),但其余信息已经消失。

当然它必须消失:你只有8位,你不能在那里存储12位信息。如果可以,您可以递归地应用该转换,直到您将任意数量的信息压缩为单个字节。

但是,也许你有一些关于S和B的小修,或者它们之间或它们中的一个和R之间有一些有用的关系。如果你有足够的知识,你可能能够重建S和B(例如,如果B = R,那么D = S,所以你知道它们全部。)