【发布时间】:2013-09-09 03:21:45
【问题描述】:
作为我正在编写的算法的一部分,我需要找到一种方法将 10 位字转换为唯一的 8 位字。 10 位字由 5 对组成,其中每对只能等于 0、1 或 2(从不等于 3)。例如:
|00|10|00|01|10|
这个值需要以某种方式合并成一个唯一的字节。
由于每一对永远不会等于 3,因此这个 10 位字永远不会表示的值范围很广,这使我认为可以创建一种算法来执行这种转换。最简单的方法是使用查找表,但存储大约 680 个值似乎浪费资源,这些值在我的程序中只会使用一次。我已经尝试过以某种方式将其中一对合并到其他对中,但我所做的每一次尝试都导致了一个非唯一的值,我现在很快就没有想法了!
有什么帮助吗?
【问题讨论】:
-
是的,当然。我正在将它编程到微控制器上,所以我需要所有可以节省的空间!
-
尝试霍夫曼编码 -- en.wikipedia.org/wiki/Huffman_coding
标签: algorithm binary logic byte