1. C語言文件操作中,二進制操作與文本操作 有什麼區別
摘錄的,你看看吧,希望有幫助!!
從文件編碼的方式來看,文件可分為ASCII碼文件和二進制碼文件兩種。
ASCII文件也稱為文本文件,這種文件在磁碟中存放時每個字元對應一個位元組,用於存放對應的ASCII碼。例如,數5678的存儲形式為:
ASC碼: 00110101 00110110 00110111 00111000
↓ ↓↓ ↓
十進制碼: 5678 共佔用4個位元組。ASCII碼文件可在屏幕上按字元顯示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可顯示文件的內容。 由於是按字元顯示,因此能讀懂文件內容。
二進制文件是按二進制的編碼方式來存放文件的。 例如, 數5678的存儲形式為: 00010110 00101110隻佔二個位元組。二進制文件雖然也可在屏幕上顯示, 但其內容無法讀懂。C系統在處理這些文件時,並不區分類型,都看成是字元流,按位元組進行處理。 輸入輸出字元流的開始和結束只由程序控制而不受物理符號(如回車符)的控制。 因此也把這種文件稱作「流式文件」。
一個文件可以以文本模式或二進制模式打開,這兩種的區別是:在文本模式中回車被當成一個字元'/n',而二進制模式認為它是兩個字元0x0D,0x0A;如果在文件中讀到0x1B,文本模式會認為這是文件結束符,也就是二進制模型不會對文件進行處理,而文本方式會按一定的方式對數據作相應的轉換。
2. 文本文件的與二進制文件比較
計算機的存儲在物理上是二進制的,所以文本文件與二進制文件的區別並不是物理上的,而是邏輯上的。這兩者只是在編碼層次上有差異。
簡單來說,文本文件是基於字元編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等。二進制文件是基於值編碼的文件,你可以根據具體應用,指定某個值(可以看作是自定義編碼)。
從上面可以看出文本文件基本上是定長編碼的(也有非定長的編碼如UTF-8),基於字元,每個字元在具體編碼中是固定的,ASCII碼是8個比特的編碼,UNICODE一般佔16個比特。而二進制文件可看成是變長編碼的,因為是值編碼,多少個比特代表一個值,完全由自己決定。 文本工具打開一個文件,首先讀取文件物理上所對應的二進制比特流,然後按照所選擇的解碼方式來解釋這個流,然後將解釋結果顯示出來。一般來說,你選取的解碼方式會是ASCII碼形式(ASCII碼的一個字元是8個比特),接下來,它8個比特8個比特地來解釋這個文件流。記事本無論打開什麼文件都按既定的字元編碼工作(如ASCII碼),所以當他打開二進制文件時,出現亂碼也是很必然的一件事情了,解碼和解碼不對應。
文本文件的存儲與其讀取基本上是個逆過程。而二進制文件的存取與文本文件的存取差不多,只是編/解碼方式不同而已。 因為文本文件與二進制文件的區別僅僅是編碼上不同,所以他們的優缺點就是編碼的優缺點。一般認為,文本文件編碼基於字元定長,解碼容易;二進制文件編碼是變長的,所以它靈活,存儲利用率要高些,解碼難一些(不同的二進制文件格式,有不同的解碼方式)。
在windows下,文本文件不一定是ASCII來存貯的,因為ASCII碼只能表示128的標識,打開一個txt文檔,然後另存為,有個選項是編碼,可以選擇存貯格式,一般來說UTF-8編碼格式兼容性要好一些。而二進制用的計算機原始語言,不存貯兼容性。
3. 文本文件和二進制文件的區別二進制文件是不是指圖片、視頻文件等
從文件編碼的來方式來看,自文件可分為ascii碼文件和二進制碼文件兩種。
ascii文件也稱為文本文件,這種文件在磁碟中存放時每個字元對應一個位元組,用於存放對應的ascii碼。例如,數5678的存儲形式為:
asc碼:
00110101
00110110
00110111
00111000
↓
↓
↓
↓
十進制碼:
5
6
7
8
共佔用4個位元組。ascii碼文件可在屏幕上按字元顯示,
例如源程序文件就是ascii文件,用dos命令type可顯示文件的內容。
由於是按字元顯示,因此能讀懂文件內容。
二進制文件是按二進制的編碼方式來存放文件的。
例如,
數5678的存儲形式為:
00010110
00101110隻佔二個位元組。二進制文件雖然也可在屏幕上顯示,
但其內容無法讀懂。c系統在處理這些文件時,並不區分類型,都看成是字元流,按位元組進行處理。
輸入輸出字元流的開始和結束只由程序控制而不受物理符號(如回車符)的控制。
因此也把這種文件稱作「流式文件」。
4. 文本文件和二進制文件的區別是什麼
文本文件是指完全由可見字元組成的文件。所謂可見字元是指ASCII碼為32到126的字元、回車符(ASCII碼13)、換行符(ASCII碼10)、製表符(ASCII碼9)、以及所有漢字字元(當然也包括其他字元集如韓文、日文、阿拉伯文等等)。如果是Unicode文本,則還包括ASCII碼0。x0dx0a而二進制文羨仔件則有穗肢多種定義方式,廣義的二進制文件是指電腦中的所有文件(包括文本文件),因為電腦中的所有文件其實都是以二進制方式存儲的,也就是說每個字元(包括可見字元、控制字元)最終都是以0和1的形式存儲在硬碟等介質中的(這也就是為什麼說電腦只認識0和1這兩個數字的原因);x0dx0a而狹義的二進制文件則是相對於文本文件而言的,即只要文件中含有除可見字元之外的其他字元(主要是控制字元),就是二進制文件;x0dx0a而比狹義的二進制文件更有特指性的兄族汪定義方式則是指可執行文件(EXE)、庫函數文件(DLL)、圖片視頻、資料庫文件等等一切由程序代碼、機器碼、特定的二進制代碼和數據等組成的有實際意義的文件。