【发布时间】:2021-06-07 10:49:16
【问题描述】:
我正在开发一个压缩器,它使用 C++ 中的 Huffman 编码压缩文本文件。执行编码后,我得到一个表示编码文件的位串(假设任意长度或说长度 = 2611)。现在,我想将此位串写入二进制文件。我怎样才能做到这一点? bitset 能有用吗?
我知道文件大小必须是整数字节,所以我将填充位串以使长度成为 8 的倍数。
我看到了一些其他相关的问题,但他们使用了预先确定的大小位集。在我的情况下,位串可能很长。
提前致谢!
PS:我只想写入二进制文件,而不是文本文件,否则编码将毫无意义。
EDIT1:以位串为例 - “10010101010010101010101011101100001001000101011110110101001010101001001010110101” 长度为 80,表示 10 个字节。我想将这 10 个字节写入二进制文件。我怎样才能从位串开始呢?
【问题讨论】:
-
就实际的 C++ 代码而言,什么是“位串”?将如何表示?
-
@PaulMcKenzie by bitstring 我的意思是我有一个二进制字符串。所有字符为 1 或 0 的字符串。
-
@PaulMcKenzie 我将其存储为 c++ 字符串。
-
您必须将其转换为字节。然后将它们写入文件。
-
顺便说一句:我电脑上的所有文件都是二进制文件。 ;)
标签: c++ binaryfiles bitset bitstring