我正在弄清楚如何压缩文件,我想知道我是否可以对输出文件进行位操作。
Current 我有一个可变大小 n 的字符串,它只包含 0 和 1。 例如:010111001010110
我想输出一个只包含 n 位而不是 n 个字符的文件。
此外,如果可能的话,我怎样才能读回这些位并将其转换回字符串?
谢谢。
更新:如果我不能直接写出位而必须将其打包成字节,是否意味着我可以将 8 位转换为一个字符并只输出一个字符列表?如果是这样,如果我尝试存储“00000000”(表示空值)会怎样?
最佳答案
你不能直接把位写出来,你至少得把它们打包成八位。是的,这意味着写出字节。请注意,输出实际上将被填充为字节,您必须对此采取一些措施。
要将包含 0 和 1 的字符串转换为原始数据,最简单的方法是使用 std::bitset
,如果您知道长度,或者编写一个按 8 位递增的循环,如
for (auto i = 0; i < str.size(); i += 8)
关于c++ - 我可以在 C++ 中输入/输出位吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23943146/