![](/img/trans.png)
[英]How to read bits of a file and write them elsewhere to regenerate the file in C
[英]How to write single bits to a file in C
我正在編程一個熵編碼算法,我想將單個位(例如編碼字符)寫入文件。 例如,我想將011寫入文件,但是如果將其存儲為字符,它將占用3個字節而不是3個位。 所以我的最后一個問題是:如何將單個位寫入文件?
提前致謝!
您不能將單個位寫入文件,分辨率為單個字節。
如果要順序寫入位,則必須將它們分批處理,直到有完整的字節,然后再寫入。 偽代碼(雖然類似於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
要更改單個位,您必須讀取一個字節,使用按位操作對其進行操作,然后再將其寫回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.