c/c++语言开发共享打包八位字节串


可能重复:
填充一个八位字符串

我有65个不同位长的参数,我需要填写一个八位字节串。 参数化将以八位字节串连续填充。 例如,假设第一个参数是1位长,那么它将在八位字节串的第一个八位位组的第0位填充。 现在第二个参数假设为9位长。 因此,该参数的前7位将填充在相​​同的八位位组中,接下来的2位应该位于下一个八位位组的第0位和第1位位置。 类似地,其他参数将填充在八位字节串中。 我试着编写一个函数,在这里我传递指向当前八位字节的指针,位位置和源指针,数据将被复制到这里。 但我发现逻辑实现有困难。 我尝试了很多逻辑(位操作,位移,旋转等),但无法得到正确的逻辑。 如果有人能在“C”中给我一个逻辑/function,我将不胜感激。 您也可以使用不同的函数原型。

    这被称为“比特流”,并且在例如低级网络协议中相当普遍。

    如果你的参数有一个合理的上限,例如32位,你应该考虑实现类似的东西:

    void bitstream_append(uint32_t value, uint8_t bits); 

    它会将最右边的位附加到流中。 如果你已经有bitstream_append_bit(bool bit); ,那么考虑如何实现它可能会有所帮助bitstream_append_bit(bool bit);

      以上就是c/c++开发分享打包八位字节串相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522021.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐