可能重复:
填充一个八位字符串
我有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