A. 什麼是二進制文件
問題一:什麼叫二進制文件 二進制文件是將文件以無符號整型數(BYTE)形式存檔,讀和寫是一個進行的。
ASCII碼文件屬文本文件,讀和寫可以字元或字元串形式進行。
二進制文件,以ASCLL碼形式讀取必然出現亂碼,就象你用記事本打開一個EXE文件,你看不明白的。
你講的a=jiuo中的jiuo分別以二進制數
01101010 01101001 01110101 01101111記錄在文件中。
正如你理解:
a=jiuo把字元串放到二進制文件里,那麼這個jiuo怎麼存,是把j,i,u,o分別轉為它們的ASCLL碼數值對應的二進制數了.
問題二:文本文件和二進制文件的區別 一、文本文件與二進制文件的定義
大家都知道計算機的存儲在物理上是二進制的,所以文本文件與二進制文件的區別並不是物理上的,而是邏輯上的。這兩者只是在編碼層次上有差異。簡單來說,文本文件是基於字元編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等。二進制文件是基於值編碼的文件,你可以根據具體應用,指定某個值是什麼意思帶棚(這樣一個過程,可以看作是自定義編碼。
從上面可以看出文譽碧本文件基本上是定長編碼的(也有非定長的編碼如UTF-8)。而二進制文件可看成是變長編碼的,因為是值編碼嘛,多少個比特代表一個值,完全由你決定。大家可能對BMP文件比較熟悉,就慶行舉拿它舉例子吧,其頭部是較為固定長度的文件頭信息,前2位元組用來記錄文件為BMP格式,接下來的8個位元組用來記錄文件長度,再接下來的4位元組用來記錄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這四個控制符。
文本文件的存儲與其讀取基本上是個逆過程。而二進制文件的存取顯然與文本文件的存取差不多,只是編/解碼方式不同而已,也不再敘述。
三、文本文件與二進制文件的優缺點
因為文本文件與二進制文件的區別僅僅是編碼上不同,所以他們的優缺點就是編碼的優缺點,這個找本編碼的書來看看就比較清楚了。一般認為,文本文件編碼基於字元定長,解碼容易些;二進制文件編碼是變長的,所以它靈活,存儲利用率要高些,解碼難一些(不同的二進制文件格式,有不同的解碼方式)。關於空間利用率,想想看,二進制文件甚至可以用一個比特來代表一個意思(位操作),而文本文件任何一個意思至少是一個字元.
在windows下,文本文件不一定是一ASCII來存貯的,因為ASCII碼只能表示128的標識,你打......>>
問題三:文本文件和二進制文件的區別 文本文件有多種格式,有些可以用文字識別,有些可以被軟體識別二進制文件是機器碼,全是0101的組合,只有機器才能識別
問題四:二進制文件和ASCII文件有何區別 簡單來說,ASCII文件(文本文件)是基於字元編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等。
二進制文件是基於值編碼的文件,可以根據具體應用,指定某個值是什麼意思(這樣一個過程,可以看作是自定義編碼。
問題五:什麼是binary文件 binary 是二進制文件。計算機上所有的文件都是二進制文件,對,所有的都是二進制。
那為什麼有得能打開?有的不知道怎麼打開?
因為你的當前系統知道那些能被打開的文件的「文件格式」。很多格式是故意公開讓所有的軟體都方便打開,比如文本文件、pdf、avi這些。
不能打開的二進制文件怎麼打開?
知道格式就能打開。
除了軟體允許的開啟方式和已知的一些公開格式,其餘二進制文件怎麼知道格式?
要麼,文件的生成者提供格式的技術文檔給你,而且有人替你寫代碼打開。
要麼,找最最高手不惜成本的替你分析出格式並寫出閱讀軟體。這要求對數據結構和對數據序列化方式的見多識廣。
要麼,別管了,開發者之所以給二進制文件就是不想讓人去修改數據結構
問題六:解釋一下什麼是「純二進制文件」? 有趣的問題。應該說計算機文件都是二進制,不過只用ascii編碼的文件通常被稱為純文本文件,其它文件就被稱為二進制文件。純二進制是個錯誤,二進制沒有不純的。
問題七:哪位高手大大幫個忙告訴我二進制文件的後綴名是什麼? 通常是bin啊。其實都是隨意的。我給你寫一個看
#include
#include
int main(int argc, char *argv[])
{
FILE *fp=NULL;
int tmpi=1234;
fp=fopen(tmp.bin,wb);
fwrite( &tmpi, sizeof( int ), 1, fp );
fclose(fp);
}
好久不寫了,有些生澀。
問題八:二進制文件的後綴是什麼? 如果你是問常用的二進制文件有哪些類型, 那一般有.jpg .doc .mp3等等, 基本上大多數文件都是二進制文件.常用的文本文件後綴為.txt 等等.
但是計算機儲存文件都是二進制的, 所謂文本文件是指遵循實現約定的編碼規則, 如ASCII碼,來記錄字元的文件.
後綴的作用只是幫助計算機找出解析這個文件的對應軟體和編碼方式. 並不會影響文件類型. 如果你吧 .mp2文件後綴改成 .txt, 任然能夠用記事本程序打開.
問題九:文本文件和二進制文件的區別 從文件編碼的方式來看,文件可分為ASCII碼文件和二進制碼文件兩種。
ASCII文件也稱為文本文件,這種文件在磁碟中存放時每個字元對應一個位元組,用於存放對應的ASCII碼。例如,數5678的存儲形式為:
ASC碼: 00110101 00110110 00110111 00111000
↓ ↓ ↓ ↓
十進制碼: 5 6 7 8 共佔用4個位元組。ASCII碼文件可在屏幕上按字元顯示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可顯示文件的內容。 由於是按字元顯示,因此能讀懂文件內容。
二進制文件是按二進制的編碼方式來存放文件的。 例如, 數5678的存儲形式為: 00010110 00101110隻佔二個位元組。二進制文件雖然也可在屏幕上顯示, 但其內容無法讀懂。C系統在處理這些文件時,並不區分類型,都看成是字元流,按位元組進行處理。 輸入輸出字元流的開始和結束只由程序控制而不受物理符號(如回車符)的控制。 因此也把這種文件稱作「流式文件」。
問題十:文本文件和二進制文件都分別有哪些後綴名 文本一般是txt,二進制是bat
B. C語言對二進制文件的存取是以什麼為單位進行的。
c語言文件把數據看作是一連串的字元(位元組)。C語言文件是一個字元(位元組)的序列,是一字元流或位元組流,是一種流式文件。根據數據的組織形式,可分為文本文件和二進制文件。
文本文件又稱為ASCII文件,每一個位元組中存放一個ASCII代碼,代表一個字元。例如,一個整數123,若用.ASCII文件存放,佔3個位元組的 存儲 單元,1、2、3各用一個位元組 存儲 。而1、2、3的ASCII碼分別為49、50、51,故123用ASCII文件存放時,存放形式為001100010011001000110011。
二進制文件是直接用數據的二進制形式存放。例如,對整數123,二進制為0000000001111011,用二進制文件存放,需2個位元組,存放形式為0000000001111011。
使用ASCII碼文件,一個位元組代表一個字元,便於對字元一一處理和輸出,但佔用較多的存儲空間,並且要花費轉換時間(ASCII碼與二進制之間的轉換)。使用二進制文件, 在內存中的數據形式與輸出到外部文件中的數據形式完全一致,可以克服ASCII文件的缺點,但不直觀,一個位元組並不對應一個字元或一個數,不能直接輸出字元形式。一般中間數據用二進制文件保存,輸入輸出使用ASCII文件。