我的应用程序从硬件接收到一个 32 位字。
第一个字节表示数据类型,其余 3 个字节是数据(24 个硬判决位)
应用程序需要缓冲数据位,直到有足够的数量可供处理。进一步处理需要 30 位。
因此,一旦接收到第二个字,应用程序将拥有第一个数据包的 30 位和第二个数据包的 18 位。
我的问题是如何最好地缓冲和输出来自 fifo 的位。这些位也需要打包成一个 32 位字
我试过使用流和位集无济于事。我还没有尝试过 bitshift,因为我希望能找到一些更“优雅”的东西并学到一些东西!
有任何 C++ 建议吗?
编辑 - 希望这会让事情变得更清楚......理想情况下,我想将收到的 3 个字节读入流中。一旦该流具有 30 位或更多位,我就想读出这 30 位。剩余的位将被留下,直到有另外 30 位可用。基本上我想要一个位 FIFO,我可以写入和读取位。