【发布时间】:2012-05-09 20:53:46
【问题描述】:
我目前正在编写通过纠错循环码对消息进行编码和解码的程序。我的算法适用于单个消息,但我在解码字符串时遇到了一些问题。编码和解码工作如下:
- 编码算法接收K位,结果返回N位。
- 解码算法接收N位,结果返回K位。
例如,我想对字符串进行编码和解码。我将字符串转换为字节数组并逐位读取,直到读取 K 位。然后我对这个 K 位进行编码,并在字节数组中逐位写入所有接收到的 N 位。等等。解码是相同的,但我解码 N 位并在字节数组中逐位写入 K 位。有一个我的问题的例子。
如果 K = 9(每行的长度为 K 以可视化我的问题)
0][11100000]
00][0011101
010][111000
0000][00111
11010][1110
111010][001
0111010][11
________[0
最后一行有一个零,不适合前 9 位。所以我将它编码为完整的 K 位消息。当然,解码后我收到 K 位消息并出现额外的字节。
[00000000][0
而且我不知道如何确定这个额外的字节。可能这个零字节在编码之前就在那里。 你能给我一些建议,我应该如何处理我的问题。也许我应该改变我的算法(也许我不应该一点一点地阅读它)。我会很感激任何帮助。谢谢。
【问题讨论】:
标签: algorithm encoding byte decoding extra