1
我在编写熵编码算法,我想将单个位(如编码字符)写入文件。例如,我想将011写入一个文件,但如果将它存储为字符,它将占用3个字节而不是3个位。所以我的最后一个问题是:我怎样才能将单个位写入文件?如何将单个位写入C中的文件
提前致谢!
我在编写熵编码算法,我想将单个位(如编码字符)写入文件。例如,我想将011写入一个文件,但如果将它存储为字符,它将占用3个字节而不是3个位。所以我的最后一个问题是:我怎样才能将单个位写入文件?如何将单个位写入C中的文件
提前致谢!
您不能将单个位写入文件,分辨率是单个字节。
如果要按顺序写入位,必须将它们批量写入,直到完整字节为止,然后写入该位。伪代码(尽管C-等),因为那是沿着线:
currbyte = 0
bitcount = 0
def writeBit (bit):
currbyte = currbyte << 1 | bit
bitcount++
if bitcount == BITS_PER_BYTE:
write currbyte to file
currbyte = 0
bitcount = 0
你都想变化各个位,你有一个字节读,用bitwise operations操纵它,然后写回来。
你不能。你必须至少写一个字节。 –