[問題] 如何以bit為單位對檔案進行寫入和讀取?

看板C_and_CPP作者 (Dixon)時間14年前 (2010/06/03 21:13), 編輯推噓5(5010)
留言15則, 7人參與, 最新討論串1/2 (看更多)
遇到的問題: 我有一個table拿來做對應,比如說: a 對應到 11001 b 對應到 111 c 對應到 1010101 ... (此table是prefix-free的code 也就是任何人都不是任何人的prefix) 假如說input是aabb 那我想要以bit的形式寫入1100111001111111到檔案裡(1和0都是一個bit而不是byte) 應該要怎麼做呢? 同理 之後我應該要怎麼從這個的檔案讀出來並把它解回aabb呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.208.162 ※ 編輯: dixonhsiao 來自: 140.113.208.162 (06/03 21:14)

06/03 21:27, , 1F
bitset
06/03 21:27, 1F

06/03 22:00, , 2F
你的問題是不知道怎麼存取 bit 還是不知道怎麼實做?
06/03 22:00, 2F

06/03 22:24, , 3F
檔案歸檔案啊 你讀出來怎麼處理又是另一回事啊
06/03 22:24, 3F

06/03 23:20, , 4F
我就是想要寫入bit而不是byte...
06/03 23:20, 4F

06/03 23:21, , 5F
然後讀出來的時候有沒有辦法一次只讀一個bit ?
06/03 23:21, 5F

06/03 23:24, , 6F
還是說真的沒辦法 一定要用byte處理 ?
06/03 23:24, 6F

06/03 23:26, , 7F
檔案的寫和讀 最小單位一定是byte而不是bit嗎?
06/03 23:26, 7F

06/03 23:34, , 8F
如果你要處理的資料是連續的話可以試看看用 bit field 吧
06/03 23:34, 8F

06/03 23:53, , 10F
讀進來可以對bit處裡, 但是File I/O函數沒辦法直接讀寫
06/03 23:53, 10F

06/03 23:53, , 11F
以bit為單位, 就還是乖乖的用byte讀寫吧....Orz
06/03 23:53, 11F

06/03 23:54, , 12F
就算是用bit field, 最少還是會使用到它的base type這麼
06/03 23:54, 12F

06/03 23:55, , 13F
多的記憶體空間喔....@_@"
06/03 23:55, 13F

06/04 00:04, , 14F
x86 asm應該沒有讀bit的指令,所以上層的I/O函數無法
06/04 00:04, 14F

06/04 00:04, , 15F
做到
06/04 00:04, 15F
文章代碼(AID): #1C1wg1xC (C_and_CPP)
文章代碼(AID): #1C1wg1xC (C_and_CPP)