亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦>知識大全>知識百科>百科知識>

      什么是二進(jìn)制文件二進(jìn)制文件的儲存方式

      時間: 玉鳳862 分享

        二進(jìn)制文件格式是系統(tǒng)軟件開發(fā)、病毒或木馬源碼分析以及文件壓縮工作的基礎(chǔ)。什么是二進(jìn)制文件呢?下面是學(xué)習(xí)啦小編整理的什么是二進(jìn)制文件,歡迎閱讀。

        什么是二進(jìn)制文件

        包含在 ASCII及擴展 ASCII 字符中編寫的數(shù)據(jù)或程序指令的文件。計算機文件基本上分為二種:二進(jìn)制文件和 ASCII(也稱純文本文件),圖形文件及文字處理程序等計算機程序都屬于二進(jìn)制文件。這些文件含有特殊的格式及計算機代碼。ASCII 則是可以用任何文字處理程序閱讀的簡單文本文件。

        二進(jìn)制文件定義

        廣義的二進(jìn)制文件即指文件,由文件在外部設(shè)備的存放形式為二進(jìn)制而得名。狹義的二進(jìn)制文件即除文本文件以外的文件。文本文件是一種由很多行字符構(gòu)成的計算機文件。文本文件存在于計算機系統(tǒng)中,通常在文本文件最后一行放置文件結(jié)束標(biāo)志。文本文件的編碼基于字符定長,譯碼相對要容易一些;二進(jìn)制文件編碼是變長的,靈活利用率要高,而譯碼要難一些,不同的二進(jìn)制文件譯碼方式是不同的。

        從本質(zhì)上來說他們之間沒有什么區(qū)別,因為他們在硬盤上都有一種的存放方式--二進(jìn)制,但是如果要對他們有些區(qū)分的話,那可以這樣理解。每個字符由一個或多個字節(jié)組成,每個字節(jié)都是用的-128—127之間的部分?jǐn)?shù)值來表示的,也就是說,-128——127之間還有一些數(shù)據(jù)沒有對應(yīng)任何字符的任何字節(jié)。如果一個文件中的每個字節(jié)的內(nèi)容都是可以表示成字符的數(shù)據(jù),我們就可以稱這個文件為文本文件,可見,文本文件只是二進(jìn)制文件中的一種特例,為了與文本文件相區(qū)別,人們又把除了文本文件以外的文件稱為二進(jìn)制文件,由于很難嚴(yán)格區(qū)分文本文件和二進(jìn)制文件的概念,所以我們可以簡單地認(rèn)為,如果一個文件專門用于存儲文本字符的數(shù)據(jù),沒有包含字符以外的其他數(shù)據(jù),我們就稱之為文本文件,除此之外的文件就是二進(jìn)制文件。

        使用二進(jìn)制文件的好處

        為什么要使用二進(jìn)制文件。原因大概有三個:

        第一是二進(jìn)制文件比較節(jié)約空間,這兩者儲存字符型數(shù)據(jù)時并沒有差別。但是在儲存數(shù)字,特別是實型數(shù)字時,二進(jìn)制更節(jié)省空間,比如儲存 Real*4 的數(shù)據(jù):3.1415927,文本文件需要 9 個字節(jié),分別儲存:3 . 1 4 1 5 9 2 7 這 9 個 ASCII 值,而二進(jìn)制文件只需要 4 個字節(jié)(DB 0F 49 40)

        第二個原因是,內(nèi)存中參加計算的數(shù)據(jù)都是用二進(jìn)制無格式儲存起來的,因此,使用二進(jìn)制儲存到文件就更快捷。如果儲存為文本文件,則需要一個轉(zhuǎn)換的過程。在數(shù)據(jù)量很大的時候,兩者就會有明顯的速度差別了。

        第三,就是一些比較精確的數(shù)據(jù),使用二進(jìn)制儲存不會造成有效位的丟失。[1]

        二進(jìn)制文件的儲存方式

        列舉一個二進(jìn)制文件如下:

        00000000h:0F 01 00 00 0F 03 00 00 12 53 21 45 58 62 35 34; .........S!EXb54

        00000010h:41 42 43 44 45 46 47 48 49 47 4B 4C 4D 4E 4F 50; ABCDEFGHIGKLMNOP

        這里列出的是在 UltraEdit(UE) 里看到的東西。其實只有紅色部分是文件內(nèi)容。前面的是 UE 加入的行號。后面的是 UE 嘗試解釋為字符型的參考。

        這個文件一共有 32 字節(jié)長。顯示為兩列,每列 16 個字節(jié)。實際上,這僅僅是 UE 的顯示而已。真實的文件并不分行。僅僅知道這個文件的內(nèi)容,如果我們沒有任何說明的話,是不能看出任何有用信息的。

        下面我規(guī)定一下說明:我們認(rèn)為,前 4 個字節(jié)是一個 4 字節(jié)的整型數(shù)據(jù)(0F 01 00 00 十六進(jìn)制:10Fh 十進(jìn)制:271)。這 4 個字節(jié)之后的 4 個字節(jié)是另一個 4 字節(jié)的整型數(shù)據(jù)(0F 03 00 00 十六進(jìn)制:30Fh 十進(jìn)制:783)。其后的 4 個字節(jié)(12 53 21 45 )表示一個 4 字節(jié)的實型數(shù)據(jù):2.5811919E+3。再其后的 4 個字節(jié)(58 62 35 34)表示另一個 4 字節(jié)的實行數(shù)據(jù):1.6892716E-7。而只后的 16 個字節(jié)(41 42 43 44 45 46 47 48 49 47 4B 4C 4D 4E 4F 50)我們認(rèn)為是 16 個字節(jié)的字符串(ABCDEFGHIGKLMNOP)

        實際上,二進(jìn)制文件只是儲存數(shù)據(jù),并不寫明數(shù)據(jù)類型,比如上面的第 9 字節(jié)到第 16 字節(jié)(12 53 21 45 58 62 35 34),我們剛才認(rèn)為是 2 個 4 字節(jié)的實型,其實也可以認(rèn)為是 8 個字節(jié)的字符型( S!EXb54)。而后面的 16 個字節(jié)的字符串(ABCDEFGHIGKLMNOP),我們也可以認(rèn)為是 2 個 8 字節(jié)的整型,或者 4 個 4 字節(jié)的整型,甚至 2 個 8 字節(jié)的實型,4 個 4 字節(jié)的實型,等等等等。

        因此,面對一個二進(jìn)制文件,我們不能準(zhǔn)確地知道它的含義,我們需要他的數(shù)據(jù)儲存方式的說明。這個說明告訴我們第幾個字節(jié)到第幾個字節(jié)是什么類型的數(shù)據(jù),儲存的數(shù)據(jù)是什么含義。否則的話,我們只能猜測,或者無能為力。[1]

        如何使用語句操作二進(jìn)制文件

        我們將上面的那個二進(jìn)制文件保存為:TestBin.Bin 來舉例。

        讀取和寫入二進(jìn)制其實是兩個很類似的操作,了解了其中之一,另一個也就不難了。

        二進(jìn)制文件我們通常使用直接讀取方式,Open 語句可以寫為:

        引用:

        Open( 12 , File = 'TestBin.Bin' , Access = 'Direct' , Form = 'Unformatted' , RecL = 4 )

        上面的 Access 表示直接讀取方式,F(xiàn)orm 表示無格式儲存。比較重要的是 RecL 。我們讀取數(shù)據(jù)時,是用記錄來描述單位的,每一次讀入或?qū)懭胧且粋€記錄。記錄的長度在 Open 時就確定下來,以后不能改變。如果需要改變,只能 Close 以后再此 Open。

        記錄長度在某些編譯器下表示讀取的 4 字節(jié)長度的倍數(shù),規(guī)定為 4 表示記錄長度為 16 字節(jié)。有些編譯器下就直接表示記錄的字節(jié)數(shù),規(guī)定為 4 則表示記錄長度為 4 字節(jié)。這個問題需要參考編譯器手冊。在 VF 系列里,這個值是前面一個含義??梢酝ㄟ^設(shè)置工程屬性的 Fortran,Data,Use Bytes as RECL= Unit for Unformatted Files 來改變,使之成為后一個含義。在命令行模式下,則使用 /assume:byterecl 這個編譯選項。

        確定 RecL 大小是我們需要做的事情,一般來說,不適合太大,也不適合太小。還需要結(jié)合數(shù)據(jù)儲存方式來考慮。太小的話,我們需要執(zhí)行讀寫的次數(shù)就多,太大的話,我們就不方便操作小范圍的數(shù)據(jù)。

        有時候我們甚至?xí)侄啻蝸碜x取數(shù)據(jù),每一次的 RecL 都不同。對于上面的 TestBin.Bin 文件來說,它比較簡單,我以 16 字節(jié)長度和 8 字節(jié)長度兩種讀取方式來演示,你甚至可以一次 32 個字節(jié)長度全部讀完。[1]

      看了什么是二進(jìn)制文件的人還看了:

      1.c語言中fopen的用法

      2.什么是電子文件 電子文件的種類與特征

      3.c語言基礎(chǔ)知識總結(jié)

      4.c語言fopen函數(shù)的用法

      5.linux操作系統(tǒng)概述

      什么是二進(jìn)制文件二進(jìn)制文件的儲存方式

      二進(jìn)制文件格式是系統(tǒng)軟件開發(fā)、病毒或木馬源碼分析以及文件壓縮工作的基
      推薦度:
      點擊下載文檔文檔為doc格式

      精選文章

      • 什么是法律文書法律文書寫作要求
        什么是法律文書法律文書寫作要求

        法律文書是一種保障人民權(quán)利,履行義務(wù),懲罰犯罪和瀆職的法律文件。什么是法律文呢?下面是學(xué)習(xí)啦小編整理的什么是法律文書,歡迎閱讀。 什么是法

      • 什么是商業(yè)規(guī)劃商業(yè)規(guī)劃的要點
        什么是商業(yè)規(guī)劃商業(yè)規(guī)劃的要點

        商業(yè)規(guī)劃是針對商業(yè)項目的調(diào)研定位、規(guī)劃設(shè)計、業(yè)態(tài)分布、工程條件等多方面進(jìn)行綜合整合、把控、細(xì)化及對接處理,使項目商業(yè)效益最大化。那么你對

      • 什么是非物質(zhì)文化非物質(zhì)文化發(fā)展
        什么是非物質(zhì)文化非物質(zhì)文化發(fā)展

        中國非物質(zhì)文化遺產(chǎn)承載著優(yōu)秀傳統(tǒng)文化的精髓,是中國人文文化的重要組成部分,什么是非物質(zhì)文化 呢?下面是學(xué)習(xí)啦小編整理的什么是非物質(zhì)文化,歡

      • 什么是商業(yè)計劃書商業(yè)計劃書的要素
        什么是商業(yè)計劃書商業(yè)計劃書的要素

        商業(yè)計劃書是公司、企業(yè)或項目單位為了達(dá)到招商融資和其它發(fā)展目標(biāo),根據(jù)一定的格式和內(nèi)容要求而編輯整理的一個向受眾全面展示公司和項目目前狀況

      2006777