我写了一段代码,在比特流中连续 6 个“1”后添加一个“0”。但是如何解码呢?
这里是一个比特流的例子:
original = {01101111110111000101111110001100...etc...}
stuffed = {011011111O101110001011111O10001100...etc...}
(“O
”代表填充的“0
”。)
如您所见,在每个“111111”之后都添加了一个“0”,要检索原始流,必须将其删除。简单的。
但是...如果原始流与填充流具有相同的形式怎么办?我怎么知道我是否必须删除这些位?!
最佳答案
我认为您对基础知识感到困惑。假设您想要在 2 个 A 之后添加一个 B。这不是“填充”:
AAAAA
“填充”它给你:
AABAABA
以上是“填充”或“未填充”。换句话说,你可以再次填充它:
AABBAABBA
或者你可以“解开”它:
AAAAAA
What if the original stream had the same form as the stuffed one?
因此,如果一个比特流中有 10 个连续的 1,那么它显然没有被填充。对于 可能 已被填充的比特流,您不能说同样的话。
关于c - 鉴别 "bit stuffing"之后的位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54623219/