麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

二進制文件與文本文件區別

2019-11-11 07:03:59
字體:
來源:轉載
供稿:網友

1.定義 計算機文件基本上分為兩類:文本文件和二進制文件。 計算機的存儲在物理上都是二進制的,文本文件與二進制文件的區別是邏輯上的。簡單的說,文本文件是基于字符編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等。 二進制文件是基于值編碼的文件,可以根據具體應用,指定某個值所代表的含義。 文本文件基本上是定長編碼(也有非定長編碼如UTF-8)。而二進制文件可看成變長編碼,多少個比特代表一個值,完全由你決定。

2.存取 文本工具打開一個文件的過程是怎樣的呢?拿記事本來說,它首先讀取文件物理上所對應的二進制比特流,然后按照你所選擇的解碼方式來解釋這個流,然后將解釋結果顯示出來。一般來說,你選取的解碼方式會是ASCII碼形式(ASCII碼的一個字符是8個比特),接下來,它8個比特8個比特地來解釋這個文件流。例如對于這么一個文件流”01000000_01000001_01000010_01000011”(下劃線”_”,為了增強可讀性手動添加的),第一個8比特”01000000”按ASCII碼來解碼的話,所對應的字符是字符”A”,同理其它3個8比特可分別解碼為”BCD”,即這個文件流可解釋成“ABCD”,然后記事本就將這個“ABCD”顯示在屏幕上。 世界上任何東西要與其他東西通信會話,都存在一個既定的協議,既定的編碼。記事本無論打開什么文件都按既定的字符編碼工作(如ASCII碼),所以當他打開二進制文件時,出現亂碼也是很必然的一件事情了,解碼和譯碼不對應嘛。例如文件流”00000000_00000000_00000000_00000001”可能在二進制文件中對應的是一個四字節的整數int 1,在記事本里解釋就變成了”NULL_NULL_NULL_SOH”這四個控制符。

3.優缺點 因為文本文件與二進制文件的區別僅僅是編碼上不同,所以他們的優缺點就是編碼的優缺點,這個找本編碼的書來看看就比較清楚了。一般認為,文本文件編碼基于字符定長,譯碼容易些;二進制文件編碼是變長的,所以它靈活,存儲利用率要高些,譯碼難一些(不同的二進制文件格式,有不同的譯碼方式)。關于空間利用率,想想看,二進制文件甚至可以用一個比特來代表一個意思(位操作),而文本文件任何一個意思至少是一個字符. 在windows下,文本文件不一定是一ASCII來存貯的,因為ASCII碼只能表示128的標識,你打開一個txt文檔,然后另存為,有個選項是編碼,可以選擇存貯格式,一般來說UTF-8編碼格式兼容性要好一些.而二進制用的計算機原始語言,不存貯兼容性. 很多書上還認為,文本文件的可讀性要好些,存儲要花費轉換時間(讀寫要編譯碼),而二進制文件可讀性差,存儲不存在轉換時間(讀寫不要編解碼,直接寫值).這里的可讀性是從軟件使用者角度來說的,因為我們用通用的記事本工具就幾乎可以瀏覽所有文本文件,所以說文本文件可讀性好;而讀寫一個具體的二進制文件需要一個具體的文件解碼器,所以說二進制文件可讀性差,比如讀BMP文件,必須用讀圖軟件. 而這里的存儲轉換時間應該是從編程的角度來說的,因為有些操作系統如windows需要對回車換行符進行轉換(將”/n”,換成”/r/n”,所以文件讀寫時,操作系統需要一個一個字符的檢查當前字符是不是”/n”或”/r/n”).這個在存儲轉換在linux操作系統中并不需要,當然,當在兩個不同的操作系統上共享文件時,這種存儲轉換又可能出來(如Linux系統和Windows系統共享文本文件)。關于這個轉換的方法,請參考文章《Linux文本文件與Windows文本文件間的轉換》http://blog.csdn.net/zhangyang0402/article/details/5153649

4.C的文本讀寫和二進制讀寫 應該說C的文本讀寫與二進制的讀寫是一個編程層次上的問題,與具體的操作系統有關,所以"用文本方式讀寫的文件一定是文本文件,用二進制讀寫的文件一定是二進制文件”這類觀點是錯誤的.下面的講述非明確指出操作系統類型,都暗指windows. C的文本方讀寫與二進制讀寫的差別僅僅體現在回車換行符的處理上.文本方式寫時,每遇到一個”/n”(0AH換行符),它將其換成”/r /n”(0D0AH,回車換行),然后再寫入文件;當文本讀取時,它每遇到一個”/r/n”將其反變化為”/n”,然后送到讀緩沖區.二進制讀寫時,其不存在任何轉換,直接將寫緩沖區中數據寫入文件. 總地來說,從編程的角度來說,C中文本或二進制讀寫都是緩沖區與文件中二進制流的交互,只是文本讀寫時有回車換行的轉換.所以當寫緩沖區中無換行符”/n”(0AH),文本寫與二進制寫的結果是一樣的,同理,當文件中不存在”/r/n”(0DH0AH)時,文本讀與二進制讀的結果一樣.

參考網址: http://www.cnblogs.com/zhangjiankun/archive/2011/11/27/2265184.html

PE文件格式 可移植性可執行文件(英語:Portable Executable,縮寫為PE)是一種用于可執行文件、目標文件和動態鏈接庫的文件格式,主要使用在32位和64位的Windows操作系統上。“可移植的”是指該文件格式的通用性,可用于許多種不同的操作系統和體系結構中。PE文件格式封裝了Windows操作系統加載可執行程序代碼時所必需的一些信息。這些信息包括動態鏈接庫、API導入和導出表、資源管理數據和線程局部存儲數據。在Windows NT操作系統中,PE文件格式主要用于EXE文件、DLL文件、.sys(驅動程序)和其他文件類型。可擴展固件接口(EFI)技術規范書中說明PE格式是EFI環境中的標準可執行文件格式。開頭為DOS頭部。 PE格式是由Unix中的COFF格式修改而來的。在Windows開發環境中,PE格式也稱為PE/COFF格式。 在Windows NT操作系統中,PE格式目前支持IA-32、IA-64和x86-64(AMD64/Intel64)的指令系統。在Windows 2000之前,Windows NT還支持MipS、Alpha和PowerPC的指令系統。由于Windows CE也在使用PE文件格式,因此PE仍然支持幾種不同型號的MIPS、ARM(包括Thumb)和SuperH指令系統。 PE文件格式的主要競爭對手是可執行與可鏈接格式(ELF)(使用于Linux和大多數Unix版本中)和Mach-O(使用于Mac OS X中)。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产一区二区在线观看视频 | 成人精品免费在线观看 | 一级黄色在线免费观看 | 日日碰日日操 | 久久久一区二区三区精品 | 久久国产成人精品国产成人亚洲 | 最新一区二区三区 | 国产午夜免费视频 | 一级在线| 国产亚洲高清在线精品不卡 | 91成人久久 | 羞羞电影在线观看www | 亚洲成人在线视频网站 | 草操影院| 国产无遮挡一区二区三区毛片日本 | 国产精品99久久久久久董美香 | 久草视频在线看 | 日韩精品中文字幕一区二区 | 亚洲性在线视频 | 国内精品久久久久久久影视红豆 | 成人一区二区三区在线 | 国产羞羞视频在线免费观看 | 精品中文字幕视频 | 欧美成人一区免费视频 | 97久色| 国产一级在线看 | av影院在线播放 | 未成年人在线观看 | 久久免费精品 | 亚洲午夜不卡 | 国产在线导航 | av在线浏览 | 九九视频在线观看6 | 素人视频在线观看免费 | 日本在线播放一区二区 | 久久99精品国产99久久6男男 | 毛毛片在线看 | 久久色网站 | 中文字幕极速在线观看 | 天天操天天看 | 亚洲免费视频大全 |