二進制文件位可以閱讀使用f:read(size)
其中大小代表字節的數量,但我怎麼一點閱讀位字節的二進制文件字節?(字節,或者如果你想八位的1/8)LUA - 讀取位
這是確定的,大部分數據INT8(1),標記Uint16(2),UINT32(4),詮釋*(4) 但對於BOOL(0.125 ?)。
感謝您的幫助!我的問題顯然不是讀一點一滴的文件,而是設法提取所有的數據,包括一些布爾值(不會產生1位的「移位」)。
二進制文件位可以閱讀使用f:read(size)
其中大小代表字節的數量,但我怎麼一點閱讀位字節的二進制文件字節?(字節,或者如果你想八位的1/8)LUA - 讀取位
這是確定的,大部分數據INT8(1),標記Uint16(2),UINT32(4),詮釋*(4) 但對於BOOL(0.125 ?)。
感謝您的幫助!我的問題顯然不是讀一點一滴的文件,而是設法提取所有的數據,包括一些布爾值(不會產生1位的「移位」)。
你不能。字節是可以從文件讀取的最小單位。您可以編寫包裝按字節訪問的代碼,使其看起來按位。
從文件讀取布爾值的適當方式取決於它是如何寫入的。除非你遇到同樣的麻煩來一點一點寫布爾值,否則就不需要這樣讀取布爾值。
Lua文件API只處理數字和字符串。要寫一個布爾值,你可以將它轉換爲這些類型之一。要閱讀它,您可以閱讀其中的一種類型,並執行與用於書寫的轉換相反的內容。例如,您可能將true
轉換爲1
和false
至0
,然後寫入和讀取數字。或者你可能試圖將幾個布爾值打包成一個數字。在任何情況下,您都不需要逐位讀取或寫入文件來讀取和寫入布爾數據。
只讀字節並從它們分析位。如果您提供有關數據結構的更多詳細信息,人們可以提供更詳細的答案。 –