文字模式 二進位制模式 文字檔案 二進位制檔案

2021-06-02 05:02:24 字數 1906 閱讀 3885

這幾個概念很常見但是也容易搞混。前兩者是相反的意思,後兩者是一對。

1. 文字模式

(textmode)

和二進位制模式

(binarymode)的

區別0.  無論你用哪種語言進行程式設計,也無論你用哪個函式進行檔案操作(庫函式也好,直接作業系統api也好),最終的檔案開啟的操作都是由作業系統來進行的,因此各種語言的情況從本質上來說都是相同的。

用二進位制模式開啟乙個檔案的時候,檔案本身的內容和你編寫程式時用函式讀到的內容完全相同(或者說和磁碟上的內容完全相同)。

但是如果用了文字模式,那麼作業系統在將檔案內容傳給上層程式(庫函式,或者是你的程式)時,或者上層程式通過作業系統向檔案寫入內容時,作業系統都會預先進行一層預處理(或者說轉義),具體過程依賴於作業系統的實現。

1.  在unix(包括linux)系統上,乙個程式從檔案裡讀資料,它得到的資料就是資料本身,乙個乙個的位元組。然而在windows系統上,乙個檔案可以用兩種模式開啟,二進位制模式或者文字模式,在二進位制模式下,表現的就像unix系統;然而在文字模式下,會有乙個轉換。是\n <-------> \r\n之間的轉換。具體講就是將回車符"\r\n"解釋成"\n"(讀出時),將"\n"解釋成"\r\n"(寫入時)。總之,在unix系統上,開啟檔案只有二進位制模式,在windows系統上,開啟檔案有文字模式和二進位制模式兩種。

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

將檔案看作是由乙個乙個位元組

(byte) 

組成的,

那麼文字檔案中的每個位元組的最高位都是

0,也就是說文字檔案使用了乙個位元組中的七位來表示所有的資訊,而二進位制檔案則是將位元組中的所有位都用上了。這就是兩者的區別;接著,第二個問題就是檔案按照文字方式或者二進位制方式開啟,兩者會有什麼不同呢?其實不管是二進位制檔案也好,還是文字檔案也好,都是一連串的0和

1,但是開啟方式不同,對於這些0和

1的處理也就不同。如果按照文字方式開啟,在開啟的時候會進行

translate

,將每個位元組轉換成

ascii

碼,而以按照二進位制方式開啟的話,則不會進行任何的

translate

;最後就是文字檔案和二進位制檔案在編輯的時候,使用的方式也是不同的。譬如,你在記事本中進行文字編輯的時候,你進行編輯的最小單位是位元組

(byte)

;而對二進位制檔案進行編輯的話,最小單位則是位

(bit)

,當然我們都不會直接通過手工的方式對二進位制檔案進行編輯了。

從檔案編碼的方式來看,檔案可分為

ascii

碼檔案和二進位製碼檔案兩種:

ascii

檔案也稱為文字檔案,這種檔案在磁碟中存放時每個字元對應乙個位元組,用於存放對應的

ascii

碼。例如,數

5678

的儲存形式為:

ascii

碼: 00110101 00110110 00110111 00111000 

↓          

↓ ↓       

↓十進位製碼:56

78 共占用4

個位元組。

ascii

碼檔案可在螢幕上按字元顯示,例如源程式檔案就是

ascii

檔案,用

dos命令

type

可顯示檔案的內容。由於是按字元顯示,因此能讀懂檔案內容。

二進位制檔案是按二進位制的編碼方式來存放檔案的。例如,數

5678

的儲存形式為:

00010110 00101110 

只佔二個位元組。二進位制檔案雖然也可在螢幕上顯示,但其內容無法讀懂。

c系統在處理這些檔案時,並不區分型別,都看成是字元流,按位元組進行處理。輸入輸出字元流的開始和結束只由程式控制而不受物理符號

(如回車符

)的控制。因此也把這種檔案稱作

「流式檔案」。

讀寫文字檔案和二進位制檔案 二進位制模式

fstream binary開啟 新行採用 lf 作為乙個位元組 關閉 新行採用 cr lf 組合,作為乙個位元組。關於 cr lf 參見 以下是 c primer 第四版中的一段 1 intmain 29 10 ifstream pos type ptendmark finout.tellg 11...

文字檔案與二進位制檔案

從本質上說所有檔案都是二進位制檔案,文字i o是在二進位制i o基礎上提供的一層抽象,它封裝了字元的編碼和解碼過程。在文字i o中自動進行編碼與解碼。在windows和dos系統中,狹義的文字檔案是指擴充套件名為txt的檔案。實際上,那些沒有規定格式的,由可理解的的ascii以及其它編碼文字組成的檔...

文字檔案與二進位制檔案

維基百科 二進位制檔案一般指包含ascii及擴充套件ascii字元中編寫的資料或程式指令的檔案。廣義的二進位制檔案即為檔案,由檔案在外部儲存裝置的存放方式為二進位制而得名。狹義的二進位制檔案即指除文字檔案以外的檔案。簡單來說,文字檔案是基於字元編碼的檔案,常見的編碼有ascii編碼,unicode編...