2012-07-21 120 views

回答

3

你還沒有說過你正在使用什麼操作系統。但一般來說,寫入文件的最小單位是一個8位字節。如果你想寫個人位,你需要在你自己的代碼中將它們組裝成字節。我不知道有哪些操作系統的文件IO設施允許寫入各個位。

+1

RAM和磁盤甚至不能*存儲*個別位。任何非深奧計算機上的最小可尋址單元都是一個8位字節。 – Wyzard 2012-07-21 00:15:09

+0

現代RAM硬件中的* real *最小可尋址單元是64位;對於光盤,通常是512或4096字節。只是發生在CPU方便地讓你假裝RAM可以按字節訪問,並且操作系統讓你假裝可以按字節訪問光盤。所以RAM和光盤不能存儲單獨的位而不能存儲單個字節的情況並非如此。 :-) – 2012-07-21 00:26:16

0

不,沒有,至少不是直接的。 C的二進制文件I/O模型是它們是字節序列(通常是8位)。

您可以在自己的代碼中編寫一個函數,該函數需要一個1位的值並將這些位收集到一個字節中,並在接收到8位時將它們寫入文件。如果字節值尚未歸檔,您還需要在最後進行額外的寫操作。

不可能寫出部分字節;如有必要,你可以用零填充最後一個字節。

(C標準需要一個字節是至少 8位,但它允許它要多。由CHAR_BIT指定位的一個字節的數字,在<limits.h>定義。CHAR_BIT將是準確8在您可能遇到的任何系統上。)

0

計算機體系結構不允許您分割字節,即8位。個人電腦工作在8位。圖靈的巨像工作了5位(因爲在Baudot的代碼中,數字2^5就足夠了)。

微處理器沒有處理小於一個字節的單位的指令(甚至比特操作像或在1,2,4,8位上使用)。