Ⅰ 文本文件的與二進制文件比較
計算機的存儲在物理上是二進制的,所以文本文件與二進制文件的區別並不是物理上的,而是邏輯上的。這兩者只是在編碼層次上有差異。
簡單來說,文本文件是基於字元編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等。二進制文件是基於值編碼的文件,你可以根據具體應用,指定某個值(可以看作是自定義編碼)。
從上面可以看出文本文件基本上是定長編碼的(也有非定長的編碼如UTF-8),基於字元,每個字元在具體編碼中是固定的,ASCII碼是8個比特的編碼,UNICODE一般佔16個比特。而二進制文件可看成是變長編碼的,因為是值編碼,多少個比特代表一個值,完全由自己決定。 文本工具打開一個文件,首先讀取文件物理上所對應的二進制比特流,然後按照所選擇的解碼方式來解釋這個流,然後將解釋結果顯示出來。一般來說,你選取的解碼方式會是ASCII碼形式(ASCII碼的一個字元是8個比特),接下來,它8個比特8個比特地來解釋這個文件流。記事本無論打開什麼文件都按既定的字元編碼工作(如ASCII碼),所以當他打開二進制文件時,出現亂碼也是很必然的一件事情了,解碼和解碼不對應。
文本文件的存儲與其讀取基本上是個逆過程。而二進制文件的存取與文本文件的存取差不多,只是編/解碼方式不同而已。 因為文本文件與二進制文件的區別僅僅是編碼上不同,所以他們的優缺點就是編碼的優缺點。一般認為,文本文件編碼基於字元定長,解碼容易;二進制文件編碼是變長的,所以它靈活,存儲利用率要高些,解碼難一些(不同的二進制文件格式,有不同的解碼方式)。
在windows下,文本文件不一定是ASCII來存貯的,因為ASCII碼只能表示128的標識,打開一個txt文檔,然後另存為,有個選項是編碼,可以選擇存貯格式,一般來說UTF-8編碼格式兼容性要好一些。而二進制用的計算機原始語言,不存貯兼容性。
Ⅱ 文本文件和二進制文件的區別是什麼
文本文件是指完全由可見字元組成的文件。所謂可見字元是指ASCII碼為32到126的字元、回車符(ASCII碼專13)、屬換行符(ASCII碼10)、製表符(ASCII碼9)、以及所有漢字字元(當然也包括其他字元集如韓文、日文、阿拉伯文等等)。如果是Unicode文本,則還包括ASCII碼0。
而二進制文件則有多種定義方式,廣義的二進制文件是指電腦中的所有文件(包括文本文件),因為電腦中的所有文件其實都是以二進制方式存儲的,也就是說每個字元(包括可見字元、控制字元)最終都是以0和1的形式存儲在硬碟等介質中的(這也就是為什麼說電腦只認識0和1這兩個數字的原因);
而狹義的二進制文件則是相對於文本文件而言的,即只要文件中含有除可見字元之外的其他字元(主要是控制字元),就是二進制文件;
而比狹義的二進制文件更有特指性的定義方式則是指可執行文件(EXE)、庫函數文件(DLL)、圖片視頻、資料庫文件等等一切由程序代碼、機器碼、特定的二進制代碼和數據等組成的有實際意義的文件。