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操縱它,然後寫回來。
你不能。你必須至少寫一個字節。 –