二進制文件與文本文件區別與聯繫?

任何文件的存儲在物理上是二進制的,所以文本文件與二進制文件的區別並不是物理上的,而是邏輯上的。這兩者只是在編碼層次上有差異。

簡單來說,文本文件是基於字符編碼的文件,常見的編碼有 ASCII、UNICODE、UTF-8 編碼。二進制文件是基於值編碼的文件,你可以根據具體應用,指定某個值是什麼意思(這樣一個過程,可以看作是自定義編碼)。

從上面可以看出文本文件基本上是定長編碼的,每個字符的編碼長度是固定的,ASCII 碼是 8 個比特的編碼,UNICODE 佔 16 個比特。而二進制文件可看成是變長編碼的,多少個比特代表一個值,完全由你決定。就 BMP 文件而言,其頭部是固定長度的文件頭信息,前 2 字節用來記錄文件爲 BMP 格式,接下來的 8 個字節用來記錄文件長度,再接下來的 4 個字節用來記錄 BMP 文件頭的長度。可以看出,其編碼是基於值的(不定長的,2、4、8 字節長的值都有),所以 BMP 是二進制文件。

總結:基於字符編碼的文件我們稱之爲文本文件,基於值編碼的文件我們稱之爲二進制文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章