【发布时间】:2016-01-05 16:00:51
【问题描述】:
我遇到了一个问题,需要我将两个数据值打包和解包成一个短片。不幸的是,短片的前 12 位被用于其他用途,这让我有 4 位来完成我的目标。但是,我真的不知道去哪里,或者这是否可能。我知道我可以打包到 4 位中的值会有限制,但我不确定这些限制的确切值。以下是我已经知道的一些事实。
假设我有两个变量,x 和 y。
- 如果 y = 0,则 x 可以等于 0-15 之间的任何数字。
- 随着 y 的增加,x 可以占用的位数必须减少,类似于反向关系。
- 必须将 Y 限制为某个值才能为 X 留出空间。
- 在 Y 的最大值处,x = 0
- X 的位数 + Y 的位数 = 4
对于如何将这些数据与给定的限制打包在一起的任何帮助或不可能的事情,我们将不胜感激。谢谢!
【问题讨论】:
-
拿一张纸,逐行写下你可以使用的每一个 16 位模式。然后制作两列,一列标题为
x,另一列为y,并为每个位模式分配正确的(出于您的目的)解释(根据x和y)。不知道你还能做什么。 -
如果 y=0 并且 x 可以是 0-15,那么您将与 x=0 和 y 在 0-15 中的相反情况重叠,并且无法区分它们。
-
听起来您正在尝试构建某种编码器/解码器,请参阅 - edgefxkits.com/blog/encoders-and-decoders-truth-tables - 该链接起初可能有点高级,但它会显示您如何“编码”将许多位转换为几位,并从几位(解码器)中取回许多位。这通常用于硬件电路,但同样可以应用于软件。