簡體   English   中英

如何在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM