文字檔案和二進位制檔案的區別?請舉例說明。

時間 2021-05-30 00:45:35

1樓:王詩翔

推薦看看這個 https://www.

cnblogs.com/zhangjiankun/archive/2011/11/27/2265184.html還是蠻清楚的。

計算機的儲存在物理上是二進位制的,所以文字檔案與二進位制檔案的區別並不是物理上的,而是邏輯上的。這兩者只是在編碼層次上有差異。簡單來說,文字檔案是基於字元編碼的檔案,常見的編碼有ASCII編碼,UNICODE編碼等等。

二進位制檔案是基於值編碼的檔案,你可以根據具體應用,指定某個值是什麼意思(這樣乙個過程,可以看作是自定義編碼。

2樓:eloggo

往往相同的資料,但是資料的組織形式和展現,解釋方法都不一樣了。

比如,乙個檔案裡想體現a=yes b=no,對於文字,就會寫a=yes b=no,佔了10個位元組;對於二進位制,完全可以乙個位元組,其中第零個bit表示a,第乙個bit表示b,yes是二進位制1,no是二進位制0,那麼要表達的形式就變為二進位制00000001,乙個位元組搞定;當程式解析的時候,就是二進位制bit操作。

3樓:JerrySY臣

把文字檔案看成二進位制檔案的一種就可以理解了世界上本就沒有所謂文字都是吃多了撐出來的

無論是文字檔案還是unicode 和ascii 這些都是檔案的解釋方式

4樓:cici

文字檔案是字元編碼的檔案,二進位制檔案是對值本身編碼的檔案(名字起得不夠直白)。

拋開那些泛泛而談,我用乙個具體的例子來展示其中的不同之處:

記事本支援文字檔案而不支援二進位制檔案,所以如果你用記事本開啟文字檔案那麼一切正常,如果開啟的是二進位制檔案就會出現亂碼。但也有不亂碼的地方,你會注意到那些地方都是字元編碼的,而對於int、double等型別所對應的值都是亂碼的,這是由於記事本只能夠識別字元型別,而無法識別其他型別。

在windows上,用記事本就可以開啟文字檔案了,但要開啟二進位制檔案需要對應的二進位制檔案解碼器,因此,文字檔案是更為大家所熟知的檔案形式,而二進位制檔案的優點在於它的輸入輸出都省去了轉換的過程,而且更省空間(1000000000用char型要占用比int型更多的空間)。

5樓:pbdq

贊同第乙個答案

我是這麼理解的,文字檔案和二進位制檔案是因為你看待資料的方式不同而產生的差別,乙個資料可以從好多方面去觀察

比如我有乙個資料是0x30,這是十六進製制,也就是從hex角度去看它;如果從二進位制角度去看就是0011 0000,這就是binary資料;那麼按照ascii碼去看的話就是字元'0',也就是文字模式

我們觀察資料的角度通常是由開啟檔案的軟體決定的,一堆資料丟給記事本的話就以文字方式編輯,如果用ultraedit開啟就可以編輯hex檔案,直接操作二進位制,sublime也可以編輯hex資料

PS:linux系統本地如果安裝了font awesome字型,還可以在vim下輸入unicode字元(占用4個位元組)引用font awesome的字型圖示(font icon)做為顯示輸出

6樓:

這是個很好的問題,要弄明白二者的區別,需要知道檔案的讀寫過程。

以讀檔案為例,實際上是磁碟 》 檔案緩衝區》應用程式記憶體空間這兩個轉化過程。我們說「文字檔案和二進位制檔案沒有區別」,實際上針對的是第乙個過程;既然沒有區別,那麼開啟方式不同,為何顯示內容就不同呢?這個區別實際上是第二個過程造成的。

檔案實際上包括兩部分,控制資訊和內容資訊。純文字檔案僅僅是沒有控制格式資訊罷了;實際上也是一種特殊的二進位制檔案。所以,我們很難區分二者的不同,因為他們的概念上不是完全互斥的。

我們說文字檔案是特殊的二進位制檔案,是因為文字檔案實際上的解釋格式已經確定了:ASCII或者unicode編碼。文字檔案的乙個缺點是,它的熵往往較低,也就是說,其實本可以用更小的儲存空間記錄這些資訊。

比如,文字檔案中的乙個數字65536,需要用5個位元組來儲存;但是用二進位制格式,採用int儲存,僅僅需要2個位元組。而二進位制檔案elf和bmp等,都往往有乙個head,告訴你檔案資訊和解釋方式。

至於「文字檔案可以按行操作,即一行一行的操作,而二進位制就只能按位元組塊了」,這個說法則是完全錯誤的。

7樓:任衛

文字檔案可以按行操作,即一行一行的操作,而二進位制就只能按位元組塊了

文字檔案跨平台特性稍好,不用考慮位元組序,但有可能需要編碼問題。二進位制檔案就必須嚴格制定檔案格式、規定好位元組序等問題。

sed 可以修改二進位制檔案?

Mili sed可以做binary。GNU sed還專門有乙個binary flag。但是要注意,BSD sed可能會在你的binary最後加乙個 n la hoo sed是流編輯器,流既可以是字元流也可以是二進位製流,可以針對文字字元或二進位制字元進行修改替換,可以直接修改二進位制檔案。感謝mul...

如何區別二進位制32個1表示 1,還是4294967295?

magic2728 乙個二進位制段表示現實中的什麼物理概念取決於規定的編碼方式,也即我們用怎樣的解碼方式來理解這個二進位制段。對於同乙個二進位制段,只要位數相同或者可以歸約 型別轉換時候就是如此,比如把int的數以一定規則變成long的數 都可以套用不同的解碼方式,而所謂資料型別恰好就是二進位製到實...

如何更好的利用軟體發現文字檔案中的時間 人名 地名 機構名等資訊?

Gavin Lear 命名實體識別技術,可以試試Stanford Name Entity Recognition 工具,有中文的,需要事先分好詞。 閔可銳 這是個典型的的命名實體識別 NER 問題。國內目前不少對於命名實體識別有乙個誤區,就是把這個問題等價於分詞,將一些特定的人名,地名加入詞庫來達到...