C++ 在文件中存储9位

C++ 在文件中存储9位,c++,C++,所以我需要编写一个算法,加载二进制文件,并在每个字节前面加上一个额外的位 因此,如果这是在“二进制编辑器”中打开的二进制文件: 01 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 01 0 0 0 0 0 0 处理后,我将有: 101 0 0 00001 0 0 010 0 0 010 0 1 0 1 0 0 000 1 0 0 0 0 0 0 0 0 0 < > C++中的“工具”是如何实现这个目标的? < p>我会

所以我需要编写一个算法,加载二进制文件,并在每个字节前面加上一个额外的位

因此,如果这是在“二进制编辑器”中打开的二进制文件:

01 0 0 0 0 0 0

0 0 1 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 1 0 1 0 0 0 0

01 0 0 0 0 0 0

处理后,我将有:

101 0 0

00001 0

0 010 0

0 010 0 1 0

1 0 0 000 1 0

0 0 0 0 0 0 0 0


< > C++中的“工具”是如何实现这个目标的?

< p>我会使用<代码>向量<代码>和大量的位旋转操作器(<代码> <代码> > <代码>和<代码> > <代码> <代码> >等。我可能会使用
向量
来保存9位值作为中间步骤,这取决于我想做的工作有多努力。

这看起来像是
boost::dynamic_bitset
所擅长的。

位移位是这里的主要工具。然后,每输入8字节,输出9字节。如果输入大小不能被8整除,请不要忘记最后一个字节。这应该会有帮助。请你更清楚你想要什么,也张贴你已经准备好的代码……@卡里布,我想他是指C++语言的哪一部分,这就是他为什么在引文中加上“工具”的原因。(@Caribou我也是,但有时这是一个很好的选择。)谢谢,这也是我的计划,我希望有一些更优雅的工具:)如果你想找到更优雅的东西,我会寻找一个可以读写任意位数的“流”类。我相信以前会有人写过,也许是在boost?