0

我的应用程序从硬件接收到一个 32 位字。

第一个字节表示数据类型,其余 3 个字节是数据(24 个硬判决位)

应用程序需要缓冲数据位,直到有足够的数量可供处理。进一步处理需要 30 位。

因此,一旦接收到第二个字,应用程序将拥有第一个数据包的 30 位和第二个数据包的 18 位。

我的问题是如何最好地缓冲和输出来自 fifo 的位。这些位也需要打包成一个 32 位字

我试过使用流和位集无济于事。我还没有尝试过 bitshift,因为我希望能找到一些更“优雅”的东西并学到一些东西!

有任何 C++ 建议吗?

编辑 - 希望这会让事情变得更清楚......理想情况下,我想将收到的 3 个字节读入流中。一旦该流具有 30 位或更多位,我就想读出这 30 位。剩余的位将被留下,直到有另外 30 位可用。基本上我想要一个位 FIFO,我可以写入和读取位。

4

0 回答 0