gpt4 book ai didi

java - 将 'bits' 写入 C++ 文件流

转载 作者:太空狗 更新时间:2023-10-29 17:56:02 24 4
gpt4 key购买 nike

如何每次将“一位”写入文件流或文件结构?

是否可以写入队列然后刷新它?

C# 或 Java 可以吗?

在尝试实现霍夫曼编码实例时需要这样做。我不能将位写入文件,所以将它们写入一个位集,然后(当压缩完成时)每次写入 8 位的一 block (不包括最后一个)。

最佳答案

缓冲各个位直到你累积了一个完整的字节似乎是个好主意:

byte b;
int s;

void WriteBit(bool x)
{
b |= (x ? 1 : 0) << s;
s++;

if (s == 8)
{
WriteByte(b);
b = 0;
s = 0;
}
}

您只需要处理要写入的位数不是 8 的倍数的情况。

关于java - 将 'bits' 写入 C++ 文件流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2476748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com