文字檔案與二進位制檔案的區別

2021-09-30 07:34:34 字數 2461 閱讀 6037

一、文字檔案與二進位制檔案的定義

大家都知道計算機的儲存在物理上是二進位制的,所以文字檔案與二進位制檔案的

別並不是物理上的,而是邏輯上的。這兩者只是在編碼層次上有差異。

文字檔案: 基於

字元編碼的檔案,eg:   ascii ----unicod----e編碼等等。

二進位制檔案:   基於值編碼的檔案。

文字檔案------基本上是定長編碼的,基於字元嘛,每個字元在具體編

碼中是固定的,ascii碼是8個位元的編碼,unicode一般佔16個位元。

二進位制檔案-------變長編碼,因為是值編碼嘛,多少個位元代表乙個值完全由你決定(傳輸)

eg:bmp檔案其頭部是較為固定長度的檔案頭資訊,前2位元組用來記錄檔案為bmp格式,接下來的8個位元組用來記錄檔案長度,再接下來的4位元組用來記錄bmp檔案頭的長度。。。

大家可以看出來了吧,其編碼是基於值的(不定長的,2、4、8位元組長的值都有),所以bmp是二進位制檔案。

二、文字檔案與二進位制檔案的訪問

文字工具開啟乙個檔案的過程是怎樣的呢?

拿記事本來說,它首先讀取檔案物理上所對應的二進位制位元流(前面已經說了,儲存都是二進位制的),然後按照你所選擇的解碼方式來解釋這個流,然後將解釋結果顯示出來。一般來說,你選取的解碼方式會是

ascii碼形式(ascii碼的乙個字元是8個位元),接下來,它8個位元8個比特地來解釋這個檔案流。例如對於這麼乙個檔案流"01000000_01000001_01000010_01000011"(下劃線''_'',是我為了增強可讀性,而手動新增的),第乙個8位元''01000000''按ascii碼來解碼的話,所對應的字元是字元''a'',同理其它3個8位元可分別解碼為''bcd'',即這個檔案流可解釋成「abcd」,然後記事本就將這個「abcd」顯示在螢幕上。

事實上,世界上任何東西要與其他東西通訊會話,都存在乙個既定的協議,既定的編碼

人與人之間通過文字聯絡,漢字「媽」代表生你的那個人,這就是一種既定的編碼。但注意到這樣一種情況,漢字「媽」在日本文字裡有可能是你生下的那個人,所以當乙個中國人a與日本b之間用「媽」這個字進行交流,出現誤解就很正常的。

用記事本開啟二進位制檔案與上面的情況類似。記事本無論開啟什麼檔案都按既定的字元編碼工作(如ascii碼),所以當他開啟二進位制檔案時,出現亂碼也是很必然的一件事情了,解碼和解碼不對應嘛。例如檔案流''00000000_00000000_00000000_00000001''可能在二進位制檔案中對應的是乙個四位元組的整數int 1,在記事本裡解釋就變成了"null_null_null_soh"這四個控制符。

文字檔案的儲存與其讀取基本上是個逆過程,不再累述。而二進位制檔案的訪問顯然與文字檔案的訪問差不多,只是編/解碼方式不同而已,也不再敘述。

三、文字檔案與二進位制檔案的優缺點

因為文字檔案與二進位制檔案的區別僅僅是編碼上不同

文字檔案編碼基於字元定長,解碼容易些;

二進位制檔案編碼是變長的,所以它靈活儲存利用率要高些解碼難一些

1.文字檔案可讀性好

2.讀寫乙個具體的二進位制檔案需要乙個具體的檔案解碼器,所以說二進位制檔案可讀性差,比如讀bmp檔案,必須用讀圖軟體

四、c的文字讀寫和二進位制讀寫

c的文字方讀寫與二進位制讀寫的差別僅僅體現在回車換行符的處理上.文字方式寫

時,每遇到乙個''/n''(0ah換行符),它將其換成''/r/n''(0d0ah,回車換行),然後再寫入

檔案;當文字讀取時,它每遇到乙個''/r/n''將其反變化為''/n'',然後送到讀緩衝區.正

因為文字方式有''/n''--''/r/n''之間的轉換,其存在轉換耗時.二進位制讀寫時,其不存

在任何轉換,直接將寫緩衝區中資料寫入檔案.

總地來說,從程式設計的角度來說,c中文字或二進位制讀寫都是緩衝區與檔案中二進

製流的互動,只是文字讀寫時有回車換行的轉換.所以當寫緩衝區中無換行符''/n''(0ah

),文字寫與二進位制寫的結果是一樣的,同理,當檔案中不存在''/r/n''(0dh0ah)時,文字

讀與二進位制讀的結果一樣.

文字檔案與二進位制檔案區別

一 文字檔案與二進位制檔案的定義 大家都知道計算機的儲存在物理上是二進位制的,所以文字檔案與二進位制檔案的區別並不是物理上的,而是 邏輯上的。這兩者只是在編碼層次上有差異。簡單來說,文字檔案是基於字元編碼的檔案,常見的編碼有ascii編碼,unicode編碼等等。二進位制檔案是 基於值編碼的檔案,你...

文字檔案與二進位制檔案區別

一 文字檔案與二進位制檔案的定義 大家都知道計算機的儲存在物理上是二進位制的,所以文字檔案與二進位制檔案的區別並不是物理上的,而是邏輯上的。這兩者只是在編碼層次上有差異。簡單來說,文字檔案是基於字元編碼的檔案,常見的編碼有ascii編碼,unicode編碼等等。二進位制檔案是基於值編碼的檔案,你可以...

文字檔案與二進位制檔案區別

一 文字檔案與二進位制檔案的定義 大家都知道計算機的儲存在物理上是二進位制的,所以文字檔案與二進位制檔案的區別並不是物理上的,而是邏輯上的。這兩者只是在編碼層次上有差異。簡單來說,文字檔案是基於字元編碼的檔案,常見的編碼有ascii編碼,unicode編碼等等。二進位制檔案是基於值編碼的檔案,你可以...