Encoding 我应该使用哪种数据结构进行位填充?

Encoding 我应该使用哪种数据结构进行位填充?,encoding,bit-manipulation,bit-fields,bitstuffing,Encoding,Bit Manipulation,Bit Fields,Bitstuffing,我正在尝试为我正在从事的一个项目实现比特填充,即一个简单的软件AFSK调制解调器。简化协议如下所示: 0111 1110 # burst sequence 0111 1110 # 16 times 0b0111_1110 ... 0111 1110 ... ... # 80 bit header (CRC, frame counter, etc.) ... 0111 1110 # header delimiter ... ...

我正在尝试为我正在从事的一个项目实现比特填充,即一个简单的软件AFSK调制解调器。简化协议如下所示:

0111 1110    # burst sequence
0111 1110    # 16 times 0b0111_1110
   ...
0111 1110
   ...
   ...       # 80 bit header (CRC, frame counter, etc.)
   ...
0111 1110    # header delimiter
   ...
   ...       # data
   ...
0111 1110    # end-of-frame sequence
现在我需要在接收到的数据中找到保留序列
0111110
,因此必须确保头和数据都不包含六个连续的
1
s。这可以通过位填充来实现,例如,在每五个
1
s序列之后插入一个零:

11111111  
皈依

111110111  

皈依

111110000
如果我想有效地实现这一点,我想我不应该使用
1
s和
0
s的数组,其中我必须将数据字节转换为
1
s和
0
s,然后填充数组等。但是静态大小的位字段似乎也不适合,因为由于位填充,内容的长度是可变的


我可以使用哪种数据结构来更有效地进行位填充?

我现在刚刚看到这个问题,看到它没有被回答,也没有被删除,我将继续回答。它可能会帮助其他看到这个问题的人,并提供结束语

位填充:这里
1的最大连续序列是
5
。在
5
1
之后,应该在
5
1
之后附加一个
0

下面是实现此功能的C程序:

#包括
typedef无符号长整型ulli;
int main()
{
ulli buf=0x0fffff01,//要填充的数据

temp2=1我刚才看到了。如果你还没有这样做,你需要一个数据结构或算法来做吗?谢谢你的回答!我实际上使用了一个循环缓冲区。由于保密协议,很遗憾我不允许显示来源:(没关系。我只是想知道为什么没有人回答这么有趣的问题。干杯!
111110000