版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章
計算機數(shù)據(jù)恢復(fù)基礎(chǔ)1.1數(shù)據(jù)的表示方法1.1.1
計算機數(shù)據(jù)的含義計算機數(shù)據(jù):是指所有能輸入計算機并被計算機程序處理的符號的介質(zhì)的總稱,是輸入計算機后進行處理并具有一定意義的數(shù)字、字母和模擬量等的通稱。數(shù)據(jù)
(Data)
需要解釋才能成為信息,要將數(shù)據(jù)轉(zhuǎn)換為信息,必須考慮幾個已知因素。所涉及的因素由數(shù)據(jù)的創(chuàng)建者和所需信息決定。元數(shù)據(jù)是用于引用有
關(guān)數(shù)據(jù)的數(shù)據(jù)。元數(shù)據(jù)可以間接或直接地被指定或給定。計算機數(shù)據(jù)簡單來說就
是能被計算機識別、處理且存儲在計算機設(shè)備中的數(shù)據(jù)。計算機數(shù)據(jù)涉及的領(lǐng)域
有數(shù)據(jù)維護和恢復(fù)、數(shù)據(jù)安全等。1.
進位計數(shù)制我們所使用的計算機均為馮
·諾依曼型計算機,且其內(nèi)部使用二進制來表示數(shù)據(jù)。數(shù)制也稱計數(shù)制,是指用一組固定的符號和統(tǒng)一的規(guī)則來表示數(shù)值的方法。在日常生活中,人們最常用的進位計數(shù)制是十進制,即按照“逢十進一
”的原則進行計數(shù)。但在實際應(yīng)用中,常會用到其他的進位計數(shù)制,如二進制、
八進制、十六進制、六十進制等。進位計數(shù)制的特點是通過一組規(guī)定的數(shù)字來表示任意的數(shù)。例如,一個二進制數(shù)只能用0和1來表示,
一個十進制數(shù)只能用0~9來表示,一個十六進制數(shù)只能用0~9和A~F這16個數(shù)碼來表示。1.
進位計數(shù)制一種進位計數(shù)制包含一組數(shù)碼和3個基本因素(基數(shù)、數(shù)位、權(quán))。(1)數(shù)碼。
一組用來表示某種進位計數(shù)制的符號。例如,十進制的數(shù)碼是0、1、
2
、3
、4
、5
、6
、7
、8
、9;二進制的數(shù)碼是0、1。(2)基數(shù)。某進位計數(shù)制可以使用的數(shù)碼個數(shù)。例如,十進制的基數(shù)是10,二
進制的基數(shù)是2。(3)數(shù)位。數(shù)碼在一個數(shù)中所處的位置。(4)權(quán)。權(quán)是基數(shù)的冪,表示數(shù)碼在不同位置上的數(shù)值。1.進位計數(shù)制在基數(shù)為J的進位計數(shù)制中,包含J個不同的數(shù)碼,每個數(shù)位計滿J就向高位進1,即“逢J進一”。一個數(shù)碼處在不同數(shù)位時,所表示的數(shù)值是不同的。每個數(shù)碼所表示的數(shù)值等于該數(shù)碼乘以一個與數(shù)碼所在數(shù)位有關(guān)的常數(shù),這個常數(shù)稱為位權(quán),簡稱權(quán)。權(quán)的大小是以基數(shù)為底,以數(shù)碼所在位置的序號為指數(shù)的整數(shù)次冪。
例如,十進制數(shù)的百分位、十分位、個位、十位、百位、千位的權(quán)依次是:10-2、10-1、10°、101、102、103。一個J進制數(shù)(S),按權(quán)展開的多項式和的一般表達式為:2.
二進制二進制是在計算機技術(shù)中被廣泛采用的一種數(shù)制。二進制數(shù)是用0和1兩個數(shù)碼來表示的。它的基數(shù)為2,進位規(guī)則是“逢二進一”,借位規(guī)則是“借一當(dāng)
二”。當(dāng)前的計算機系統(tǒng)使用的數(shù)制基本均為二進制。計算機內(nèi)部采用二進制的原因主要有以下幾點:(1)技術(shù)實現(xiàn)簡單。(2)運算規(guī)則簡單。(3)適合邏輯運算。(4)易于進行轉(zhuǎn)換。(5)具有抗干擾能力強,可靠性高等優(yōu)點。例如,(1101.011)2=1×23+1×22+0×21+1×2?+0×2-1+1×2-2+1×2-3。十六進制的基數(shù)為16,有0、1、2、3、4、5、6、7、8、9及大寫英文字母A、B、
C、D、E、F
(數(shù)碼A~F對應(yīng)十進制數(shù)分別是10~15)共16個數(shù)碼。十六進制在計數(shù)時
“逢十六進一
”,第i位上的權(quán)是16的i次冪。一個十六進制數(shù)展開成多項式和的表達
式為:2.
二進制二進制的基數(shù)為2,只有“0”和“1”兩個數(shù)碼。二進制在計數(shù)時“逢二進一”,第i位的權(quán)是2的i次冪。
一個二進制數(shù)展開成多項式和的表達式為:十進制數(shù)二進制數(shù)十六進制數(shù)十進制數(shù)二進制數(shù)十六進制數(shù)0008100081119100192102101010A3113111011B41004121100C51015131101D61106141110E71117151111F2.
二進制十進制數(shù)、十六進制數(shù)和二進制數(shù)之間有著非常簡單的對應(yīng)關(guān)系。3種常用進位計數(shù)制數(shù)的對照表如表1-1所示。3.
進位計數(shù)制數(shù)的相互轉(zhuǎn)換1)二進制數(shù)轉(zhuǎn)換成十進制數(shù)為了使進位計數(shù)制數(shù)表述清晰、方便,常在其后面加上大寫字母加以區(qū)別:加字母B(Blnary)表示二進制數(shù);加字母0(Octal)
表示八進制數(shù);加字母H(Hexadecimal)
表示十六進制數(shù);加字母D(Decimal)
或不加字母表示十進制數(shù)。若想將二進制數(shù)轉(zhuǎn)換成十進制數(shù),只需要把二進制數(shù)寫成按權(quán)展開多項式和的形式,再計算此表達式的和即可。例
如
:1101B=1×23+1×22+0×21+1×2?=23+22+2?=13D。3.
進位計數(shù)制數(shù)的相互轉(zhuǎn)換2)十進制整數(shù)轉(zhuǎn)換成二進制整數(shù)如果十進制整數(shù)轉(zhuǎn)換成二進制整數(shù),則采用“除2取余”法。其規(guī)則:除2取余,直至商為0,再進行倒排,即將十進制整數(shù)除以2,得到一個商和一個余
數(shù),再將商除以2,又得到一個商和一個余數(shù),以此類推,直至商為0,再將每
次得到的余數(shù)倒序排列,就是對應(yīng)的二進制整數(shù)。例如,將十進制整數(shù)86轉(zhuǎn)換成二進制整數(shù):十進制數(shù)余數(shù)系數(shù)2
|862|43……0
……k?2|21
……1
……k
即86D=(k?k?
k?
k?
k?
k?
k?)=1010110B。2|10……1
……k?2L5
……0
……k?212
……1
……k21
……0
……k,
0
……1
……k?3.
進位計數(shù)制數(shù)的相互轉(zhuǎn)換3)十進制小數(shù)轉(zhuǎn)換成二進制小數(shù)如果十進制小數(shù)轉(zhuǎn)換成二進制小數(shù),則采用“乘2取整”法。其規(guī)則:乘2
取整,直至小數(shù)部分為0或給定的精度,再進行順排,即用2逐次去乘十進制小
數(shù),將每次得到的積的整數(shù)部分按各自出現(xiàn)的先后順序依次排列,即可得到對
應(yīng)的二進制小數(shù)。例如,將十進制小數(shù)0.875轉(zhuǎn)換成二進制小數(shù):十進制小數(shù)
整數(shù)系數(shù)……1
……k,
即0.875D=(k_1k?
k-3)=0.111B。……1
……k?……1
……k?3.
進位計數(shù)制數(shù)的相互轉(zhuǎn)換4)十六進制數(shù)轉(zhuǎn)換成二進制數(shù)十六進制數(shù)轉(zhuǎn)換成二進制數(shù)的規(guī)則:將每一位十六進制數(shù)改寫成等值的4位二進制數(shù),次序不變。例如,將十六進制數(shù)1CA.BH轉(zhuǎn)換成二進制數(shù):1
C
A
.
B0001
1100
1010
.1011即1CA.BH=000111001010.1011B=111001010.1011B。3.
進位計數(shù)制數(shù)的相互轉(zhuǎn)換5)二進制數(shù)轉(zhuǎn)換成十六進制數(shù)將二進制數(shù)轉(zhuǎn)換成十六進制數(shù)的規(guī)則:(1)整數(shù)部分從最低有效位開始,以4位為一組,含最高有效位的一組不足4位
時以0補齊,每一組二進制數(shù)均可轉(zhuǎn)換成一個十六進制數(shù),各組轉(zhuǎn)換完畢后即可
得到轉(zhuǎn)換后的十六進制整數(shù)。(2)小數(shù)部分從最高有效位開始,以4位為一組,含最低有效位的一組不足4位
時以0補齊,每一組二進制數(shù)均可轉(zhuǎn)換成一個十六進制數(shù),各組轉(zhuǎn)換完畢后即可
得到轉(zhuǎn)換后的十六進制小數(shù)。例如,將二進制數(shù)11001111.01111B轉(zhuǎn)換成十六進制數(shù):84218421
.842111001111
.0111C
F
.
7即11001111.01111B=CF.78H。8421181.1.2數(shù)值數(shù)據(jù)在計算機中的表示方法計算機只能識別二進制數(shù),而要求計算機處理的數(shù)卻種類繁多,這該怎么辦呢?在計算機中,各種形式的編碼很好地解決了數(shù)及字符等信息的表示問題。數(shù)據(jù)可分為兩大類:數(shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù)。前者表示數(shù)量的多少;后者表示字符、漢字、圖形、圖像、聲音等數(shù)據(jù),又稱符號數(shù)據(jù)。在計算機內(nèi),無論哪一種數(shù)據(jù),都以二進制的形式來表示。1.
數(shù)據(jù)的單位數(shù)據(jù)的常用單位有位、字節(jié)和字。1
)
位
(Bit)在計算機中,最小的數(shù)據(jù)單位是二進制的一個數(shù)位,簡稱位(英文名稱為Bit,
讀音為“比特”)。
一位二進制數(shù)只具有“0”和“1”兩個狀態(tài)。在計算機中,最直接和最基本的操作就是對二進制位的操作。2)字節(jié)
(Byte)字節(jié)
(Byte,B)是計算機信息技術(shù)用于計量存儲量的一種計量單位。字節(jié)這一名詞專門用來表示8位二進制數(shù)。作為一個8位二進制數(shù),一個字節(jié)可以從00000000取值到11111111,可以表
示0~255的正數(shù),也可以表示-128~127的正、負數(shù)。總之,
一個特定的字節(jié)可以
代表2?(即256種)不同事物中的一種。1.
數(shù)據(jù)的單位3)字
(Word)在計算機中,作為一個整體被存取、傳送、處理的二進制數(shù)串稱為一個“字”或“單元”。字通??煞譃槿舾蓚€字節(jié)。在存儲器中,通常情況下每個
單元存儲一個字。因此,每個字都是可以尋址的。字的長度用位數(shù)來表示。2.
字長在字中,二進制位數(shù)的長度稱為字長。根據(jù)計算機的不同,字長有固定的和可
變的兩種。固定字長,即字的長度無論在什么情況下都是固定不變的;可變字長,
即其長度在一定范圍內(nèi)是可變的。計算機的字長是指計算機一次可處理的二進制數(shù)的長度。計算機處理數(shù)據(jù)的速
率和它一次處理的信息位數(shù)以及其進行運算的快慢有關(guān)。如果一臺計算機的字長是
另一臺計算機的兩倍,兩臺計算機的運算速度相同,在相同的時間內(nèi),前者能做的
工作是后者的兩倍。在微型計算機中,通常用字節(jié)來表示存儲器的存儲容量。在計算機的運算器和
控制器中,數(shù)據(jù)通常是以字為單位進行傳送的。另外,字在不同的地址中出現(xiàn)其含
義是不相同的。例如,送往控制器的字是指令,而送往運算器的字就僅是一個數(shù)。
一個字由若干個字節(jié)組成。不同計算機系統(tǒng)的字長也是不同的,常見的有8位、16
位、32位、64位等。字長越長,計算機一次處理的信息位就越多,精度就越高。字
長是計算機性能的一個重要指標。在一般情況下,大型計算機的字長為32~64位,
小型計算機的字長為12~32位,而微型計算機的字長為4~16位。字長是衡量計算
機性能的一個重要因素。1.1.3字符數(shù)據(jù)在計算機中的表示方法在計算機領(lǐng)域中,數(shù)據(jù)的概念是廣義的。計算機除了處理各種數(shù)值之外,還要處理大量的符號,如英文字母和漢字等非數(shù)值信息。例如,當(dāng)要用計算機編寫
文章時,就需要將文章中的各種符號、英文字母和漢字等字符輸入計算機,然后
由計算機進行編輯和排版。計算機中的數(shù)據(jù)可以分為數(shù)值數(shù)據(jù)與非數(shù)值數(shù)據(jù)兩種。其中,數(shù)值數(shù)據(jù)就是
常說的“數(shù)”(如整數(shù)、實數(shù)等),且在計算機中是以二進制數(shù)的形式存放的;
而非數(shù)值數(shù)據(jù)與一般的“數(shù)”不同,通常不表示數(shù)值大小,只表示字符或圖形等
信息,但這些信息在計算機中也是以二進制數(shù)的形式存放的。美國信息交換標準代碼(American
Standard
Code
for
Information
Interchange,
ASCII)
是基于拉丁字母的一套計算機編碼系統(tǒng),也是國際通用的信息交換標準。ASCII使用指定的7位或8位二進制數(shù)的組合來表示128種或256種可能的字符。0000010100111001011101110000NULDELSP0@P0p0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CSCS0100EOTDC4$4DTdt0101ENQNAK%5EUeU0110ACKSYN&6FVfV0111DELETB7GWgW1000BSCAN(8HXhX1001HTEM)9IY1y1010LFSUB*:JZJZ1011VTESC+;K[k{1100FFFS,<L\111101CRGS一=M]m}1110SORS·>Nn一1111SIUS/?O一0DEL1.1.3字符數(shù)據(jù)在計算機中的表示方法用ASCII表示的字符稱為ASCII字符。如表1-2所示為ASCII編碼表。1.2數(shù)據(jù)的邏輯運算邏輯運算又稱布爾運算。英國的數(shù)學(xué)家布爾,在1847年發(fā)明了處理二值之間關(guān)系的邏輯數(shù)學(xué)計算法。他用等式表示判斷,把推理看成等式的變換。這種變換
的有效性不依賴于人們對符號的認識,只依賴于符號的組合規(guī)律。20世紀30年代,
邏輯代數(shù)在電路系統(tǒng)中得到應(yīng)用。之后,隨著電子技術(shù)與計算機的發(fā)展,出現(xiàn)了
各種復(fù)雜的系統(tǒng)。這些系統(tǒng)的變換規(guī)律也遵守布爾所揭示的規(guī)律。邏輯運算是CPU
運算的本質(zhì)。計算機在處理無論多么復(fù)雜的事情時,都得通
過電路的開關(guān)。邏輯是指對某個事物的推理,有“真”和“假”是兩個對立的邏
輯狀態(tài)。邏輯運算是指用數(shù)學(xué)符號來表示邏輯狀態(tài),以便于用數(shù)學(xué)方法研究邏輯
問
題
。1.2數(shù)據(jù)的邏輯運算在計算機中進行的運算是二進制運算,邏輯判斷的結(jié)果只有兩個值,這兩個值稱為“邏輯值”,用數(shù)碼來表示就是“1”和“0”。其中,“1”表示該邏輯運算的結(jié)果為“真”,
“0”表示該邏輯運算的結(jié)果為“假”。我們常將電路通電狀態(tài)表示為“真”,用數(shù)字“1”表示,不通電狀態(tài)表示為“假”,用數(shù)字“0”表
示
。計算機的邏輯運算與算術(shù)運算的主要區(qū)別:邏輯運算是按位進行的,位與位
之間不像加/減運算那樣有進位或借位的聯(lián)系。邏輯運算主要包括3種基本運算:“或”運算、“與”運算和“非”運算。此外,還有一種“異或”運算也很有用。在磁盤陣列
(
redundant
array
ofindependent
disks,
簡寫為RAID)
中,就會大量使用“異或”運算作為校驗算法。1.2.1“或”運算“或”運算又稱加運算,運算符號有“+”
“V”“OR”等。“或”邏輯是指當(dāng)輸入變量中有一個變量滿足條件時,輸出結(jié)果就有效。只
有當(dāng)所有輸入變量均不滿足條件時,輸出結(jié)果才無效。也就是說,在給定的邏輯變量中,只要有一個變量為1,其運算結(jié)果為1;當(dāng)邏輯變量都為0時,運算結(jié)果為0。其運算規(guī)則如下:0+0=0,0v0=00+1=1,0v1=11+0=1,1V0=11+1=1,1V1=1例如,x=10110011
、y=10011011,求xvy。即xvy=10111011B1.2.2“與”運算“與”運算又稱乘運算,運算符號有
“x”“A”“.”等
?!芭c”邏輯是指當(dāng)所有輸入變量同時滿足條件時,輸出結(jié)果才有效,否則輸
出
結(jié)
果
無
效
。也就是說,只有當(dāng)參與運算的邏輯變量同時取值為1時,其運算結(jié)果才等
于1。其運算規(guī)則如下:Ox0=0,0?0=0,0·0=0Ox1=0,0^1=0,0·1=01x0=0,
1へ0=0,1·0=01x1=1,1^1=1,1·1=1例如,x=10110011
、y=10011011,求x^y。101100111001101110010011即x^y=10010011B1.2.3“非”運算“非”運算又稱反運算,運算符號為在變量上畫一條橫線?!胺恰边壿嬍侵府?dāng)輸入變量為1時,輸出結(jié)果為0;當(dāng)輸入變量為0時,輸出結(jié)果為1。也就是說,0的非為1,1的非為0。A
10010011A
01101100即A=01101100。例如,A=10010011,求
:A1.2.4“異或”運算“異或”邏輯表示兩個值不同為“真”、
“相同”為假。也就是說,兩個值都為0或者1,其運算結(jié)果為0;而一個值為0,另一個值為1,其運算結(jié)果為1。
“異或”運算通常用符號“田”表示,其運算規(guī)則如下:0田0=00田1=11田0=11田1=0例如,x=10110011
、y=10011011,求x④y。即x田y=00101000B1.3數(shù)據(jù)結(jié)構(gòu)如果想深入掌握數(shù)據(jù)恢復(fù)技術(shù),就不能缺少對數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí),因為在數(shù)據(jù)的存儲和管理中處處離不開數(shù)據(jù)結(jié)構(gòu),如硬盤的分區(qū)結(jié)構(gòu)、文件的系統(tǒng)結(jié)構(gòu)
等,都是對數(shù)據(jù)結(jié)構(gòu)的具體應(yīng)用。1.3.1數(shù)據(jù)結(jié)構(gòu)的概念與分類數(shù)據(jù)結(jié)構(gòu)是計算機學(xué)科中的一門專業(yè)課程,更是在程序設(shè)計中不可或缺的一部分。數(shù)據(jù)結(jié)構(gòu)是計算機存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。在通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運行和存儲效率。數(shù)據(jù)結(jié)構(gòu)往往與高效的檢索算法和索引技
術(shù)有關(guān)。1.
數(shù)據(jù)結(jié)構(gòu)的基本概念1)什么是數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)是指所有能被輸入計算機,且能被計算機處理的符
號(數(shù)字、字符等)的集合,是計算機操作對象的總稱。1.
數(shù)據(jù)結(jié)構(gòu)的基本概念2)數(shù)據(jù)元素數(shù)據(jù)元素是在數(shù)據(jù)集合中的一個“個體”,是數(shù)據(jù)結(jié)構(gòu)的基本單位。數(shù)據(jù)元素有兩類,一類是不可分割的“原子”型數(shù)據(jù)元素,如數(shù)值“1”、
字符“N”
等;另一類是由多個款項構(gòu)成的數(shù)據(jù)元素。其中每個款項稱為一個
“數(shù)據(jù)項”。3)關(guān)鍵字關(guān)鍵字是指能識別一個或多個數(shù)據(jù)元素的數(shù)據(jù)項。若能起唯一識別作用,則稱為“主關(guān)鍵字”,否則稱為“次關(guān)鍵字”。4)數(shù)據(jù)對象數(shù)據(jù)對象是具有相同特性的數(shù)據(jù)元素的集合,如整數(shù)、實數(shù)等。數(shù)據(jù)對
象是數(shù)據(jù)的一個子集D。1.數(shù)據(jù)結(jié)構(gòu)的基本概念5)數(shù)據(jù)結(jié)構(gòu)若特性相同的數(shù)據(jù)元素集合中的數(shù)據(jù)元素間存在一種或多種特定的關(guān)系,則該數(shù)據(jù)元素集合稱為“數(shù)據(jù)結(jié)構(gòu)”。也就是說,數(shù)據(jù)結(jié)構(gòu)是帶“結(jié)構(gòu)”的
數(shù)據(jù)元素的集合,
“結(jié)構(gòu)”即指數(shù)據(jù)元素之間存在的關(guān)系。2.數(shù)據(jù)結(jié)構(gòu)的分類1)按照數(shù)據(jù)結(jié)構(gòu)的關(guān)系分類數(shù)據(jù)結(jié)構(gòu)按照數(shù)據(jù)結(jié)構(gòu)的關(guān)系可分為線性結(jié)構(gòu)、樹結(jié)構(gòu)、圖結(jié)構(gòu)和集合結(jié)構(gòu)。(1)線性結(jié)構(gòu)是指數(shù)據(jù)結(jié)構(gòu)中的元素存在一對一的相互關(guān)系,如圖1-1所示。(2)樹結(jié)構(gòu)是指數(shù)據(jù)結(jié)構(gòu)中的元素存在一對多的相互關(guān)系,如圖1-2所示。圖1-
1線性結(jié)構(gòu)
圖1-
2樹結(jié)構(gòu)2.
數(shù)據(jù)結(jié)構(gòu)的分類1)按照數(shù)據(jù)結(jié)構(gòu)的關(guān)系分類(3)圖結(jié)構(gòu)是指數(shù)據(jù)結(jié)構(gòu)中的元素存在多對多的相互關(guān)系,如圖1-3所示。(4)集合結(jié)構(gòu)是指數(shù)據(jù)結(jié)構(gòu)中的元素間除了“同屬一個集合”的相互關(guān)系外
無其他關(guān)系,如圖1-4所示。圖1-3圖結(jié)構(gòu)
圖1-4
集合結(jié)構(gòu)2.
數(shù)據(jù)結(jié)構(gòu)的分類2)按照數(shù)據(jù)結(jié)構(gòu)的層次分類(1)邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu),可以用一個數(shù)據(jù)元素的集合來定義在此集合上的若干關(guān)系。其中,邏輯關(guān)系是指數(shù)據(jù)元素
之間的前后間關(guān)系,而與其在計算機中的存儲位置無關(guān)。(2)物理結(jié)構(gòu)又稱存儲結(jié)構(gòu),是指數(shù)據(jù)結(jié)構(gòu)中的元素在計算機存儲空間中的
存放形式。①數(shù)據(jù)元素的機內(nèi)表示:用二進制的位串表示數(shù)據(jù)元素。②關(guān)系的機內(nèi)表示:數(shù)據(jù)元素間關(guān)系的機內(nèi)表示可以分為順序映像和非順序
映像
。2.
數(shù)據(jù)結(jié)構(gòu)的分類2)按照數(shù)據(jù)結(jié)構(gòu)的層次分類一般來說,
一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以根據(jù)需要表示成多種存儲結(jié)構(gòu)。常用的存儲結(jié)構(gòu)有順序存儲結(jié)構(gòu)、鏈式存儲結(jié)構(gòu)、索引存儲和散列存儲結(jié)構(gòu)。順序存儲結(jié)構(gòu)的特點:借助數(shù)據(jù)元素在存儲器中的相對位置來表示數(shù)據(jù)元素之
間的邏輯關(guān)系。非順序存儲結(jié)構(gòu)的特點:借助指示數(shù)據(jù)元素存儲地址的指針表
示數(shù)據(jù)元素間的邏輯關(guān)系。(1)順序存儲結(jié)構(gòu):(2)鏈式存儲結(jié)構(gòu)(3)索引存儲結(jié)構(gòu)(4)散列存儲結(jié)構(gòu)1.3.2樹結(jié)構(gòu)1.樹結(jié)構(gòu)的定義樹結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu),它是由n(n≥1)個有限節(jié)點組成的具有層次關(guān)系的集合。在樹結(jié)構(gòu)中,用一個圓圈表示一個節(jié)點,圓圈內(nèi)的符號代表
該節(jié)點的數(shù)據(jù)信息,節(jié)點之間的關(guān)系通過有方向的連線表示。其方向為從上向下,
即上方節(jié)點是下方節(jié)點的前驅(qū)節(jié)點,下方節(jié)點是上方節(jié)點的后繼節(jié)點。樹結(jié)構(gòu)(簡稱樹)看起來像一棵倒掛的樹,如下圖所示。B◎
E
①
◎
日①
①
①K
◎
①1.3.2樹結(jié)構(gòu)2.
樹結(jié)構(gòu)的基本術(shù)語(1)節(jié)點(2)節(jié)點的度(3)樹的度(4)葉節(jié)點(終端節(jié)點)(5)分支節(jié)點(非終端節(jié)點)(6)子女節(jié)點(7)雙親節(jié)點(8)兄弟節(jié)點(9)堂兄弟節(jié)點(10)祖先節(jié)點(11)子孫節(jié)點(12)節(jié)點的層次(13)樹的高(深)度(14)有序樹(15)無序樹(16)森林1.3.2樹結(jié)構(gòu)3.
樹結(jié)構(gòu)的特點(1)每個節(jié)點有0個或多個子節(jié)點。(2)每個子節(jié)點只有一個父節(jié)點。(3)沒有前驅(qū)節(jié)點作為根節(jié)點。(4)除了根節(jié)點外,每個子節(jié)點可以分為m
個不相交的子樹。1.3.3樹結(jié)構(gòu)1.
二叉樹的定義二叉樹是樹形結(jié)構(gòu)的一種,只要對樹的結(jié)構(gòu)加以限制就能得到二叉樹。二叉樹是n(n≥0)個節(jié)點的有限集合,并且滿足下面的任意一個條件。(1)為空二叉樹,即n=0。(2)由一個根節(jié)點和兩個互不相交的左子樹和右子樹組成。左子樹和右子樹的順
序不能任意顛倒。如圖1-6所示的
(a)
和(b)就是兩個完全不同的二叉樹。A
AB①
①E
⑤(a)
(b)1.3.3樹結(jié)構(gòu)2.
樹和二叉樹的區(qū)別(1)樹的節(jié)點個數(shù)至少為1,而二叉樹的節(jié)點個數(shù)可以為0。(2)樹節(jié)點對最大度數(shù)沒有限制,而二叉樹節(jié)點的最大度數(shù)為2。(3)樹的節(jié)點無左、右之分,而二叉樹的節(jié)點有左、右之分。1.3.3樹結(jié)構(gòu)3.二叉樹的基本形態(tài)(1)空二叉樹,如圖1-7所示。(2)僅有根節(jié)點的二叉樹,如圖1-8所示。(3)右子樹為空的二叉樹,如圖1-9所示。(4)左子樹為空的二叉樹,如圖1-10所示。(5)左、右子樹均為非空的二叉樹,如圖1-11所示。圖1-9右子樹為空的二叉樹
圖1-10
左子樹為空二叉樹圖1-11左、右子樹均為空的二叉樹圖1-8僅有根節(jié)點的二叉樹圖1-7空二叉樹1.3.3樹結(jié)構(gòu)4.
二叉樹的類型(1)滿二叉樹。滿二叉樹是指除了葉節(jié)點外每個節(jié)點都有左、右子女節(jié)點,
且葉節(jié)點都處在最底層的二叉樹,如圖1-12所示。(2)完全二叉樹。完全二叉樹是指除最后一層,每層的節(jié)點數(shù)均達到最大值,
且在最后一層上只缺少右邊的若干節(jié)點的二叉樹,如圖1-13所示。①②
②4
5
⑥
49
⑩
?
?
?
?圖1-12滿二叉樹
圖1-13完全二叉樹1.3.4B樹、B-樹、B+樹和B*樹1.B
樹1)B
樹的定義B樹就是二叉查找樹,需要滿足下列條件。(1)所有非葉節(jié)點最多擁有兩個子女節(jié)點(左子女節(jié)點和右子女節(jié)點)。(2)所有節(jié)點存儲一個關(guān)鍵字。(3)非葉節(jié)點的左指針指向小于其關(guān)鍵字的子樹,右指針指向大于其關(guān)鍵字的子樹。如圖1-14所示的樹就是一個B樹。353⑨
2856圖1-14
B樹1.3.4B樹、B-樹、B+樹和B*樹1.B
樹2)B
樹的查找B樹的查找是從根節(jié)點開始,如果查找的關(guān)鍵字與節(jié)點關(guān)鍵字相等,那么該節(jié)點關(guān)鍵字即為查找的關(guān)鍵字;如果查找的關(guān)鍵字比節(jié)點關(guān)鍵字小,就進入左子女節(jié)
點;如果查找的關(guān)鍵字比節(jié)點關(guān)鍵字大,就進入右子女節(jié)點;如果左子女節(jié)點或右
子女節(jié)點的指針為空,則報告找不到相應(yīng)的關(guān)鍵字。1.3.4
B樹、B-樹、B+樹和B*樹2.B-
樹1)
B-樹的定義B-樹是一種平衡的多叉樹。通常,m
階的B-樹必須滿足下列條件。(1)每個節(jié)點最多擁有m
個子女節(jié)點。(2)除根節(jié)點和葉節(jié)點外,其他的每個節(jié)點至少有m/2
個子女節(jié)點。(3)若根節(jié)點不是葉節(jié)點,則至少有兩個子女節(jié)點。(4)所有的葉節(jié)點在同一層,且葉節(jié)點不包含任何關(guān)鍵字信息。(5)有k個子節(jié)點的非終端節(jié)點最多包含k-1個關(guān)鍵字信息1226405239
1520
2832
36384549606574圖1-15
B-樹351.3.4B樹、B-樹、B+樹和B*樹2.B-
樹2)B-
樹的查找B-樹的查找是一個順指針查找節(jié)點和在節(jié)點內(nèi)的關(guān)鍵字中查找交叉進行的過程。從根節(jié)點開始,在節(jié)點包含的關(guān)鍵字中查找給定的關(guān)鍵字,找到則查找成功;否則
確定給定關(guān)鍵字可能存在的子樹,重復(fù)以上操作,直到查找成功或者指針為空為止。1.3.4
B樹、B-樹、B+樹和B*樹2.B-
樹3)B-
樹的插入B-樹的插入首先是在恰當(dāng)?shù)娜~節(jié)點中添加關(guān)鍵字。如果在該節(jié)點中關(guān)鍵字不超過m-1
個,則插入成功;否則要把這個節(jié)點分裂為兩個,并把中間的一個關(guān)鍵字拿
出來插到節(jié)點的父節(jié)點中。當(dāng)插入父節(jié)點失敗時,就需要將父節(jié)點再分裂,繼續(xù)進
行插入操作。當(dāng)需要分裂根節(jié)點時,由于根節(jié)點沒有父節(jié)點,這時就需要建立一個
新的根節(jié)點。
B-樹的插入可能導(dǎo)致B-樹朝著根的方向生長。例如,若想在如圖1-16所示的一個6階B-樹中插入關(guān)鍵字“33”,因為在最右邊
的節(jié)點中關(guān)鍵字的個數(shù)已經(jīng)達到5個,所以不能將“33”直接插入,而要把這個節(jié)
點分裂為兩個,并把中間的一個關(guān)鍵字“36”拿出來插到節(jié)點的父節(jié)點里。10203036246
121517192127323335415310203024612151719212732353641531.3.4B樹、B-樹、B+樹和B*樹2.B-
樹圖1
-
17插入關(guān)鍵字“36”后的B-樹圖1-16一
個6階B-樹1.3.4
B樹、B-樹、B+樹和B*樹2.B-
樹4)B-
樹的刪除B-樹的刪除分為以下兩種情況。(1)B-
樹的刪除與插入類似,但會稍微復(fù)雜些。如果刪除的關(guān)鍵字不在葉節(jié)點層,
就需要先把此關(guān)鍵字與它在B-樹里的后繼節(jié)點對換位置,然后再刪除該關(guān)鍵字。(2)如果刪除的關(guān)鍵字在葉節(jié)點層,則把它從它所在的節(jié)點里去掉,這可能導(dǎo)致
此節(jié)點所包含的關(guān)鍵字的個數(shù)小于m/2-1。這種情況下,考察該節(jié)點的左或右兄弟
節(jié)點,從兄弟節(jié)點移若干個關(guān)鍵字到該節(jié)點中來,使兩個節(jié)點所含關(guān)鍵字的個數(shù)基
本相同。只有在兄弟節(jié)點的關(guān)鍵字個數(shù)剛好等于m/2-1時,這個移動才能進行。這
種情況下,要將刪除關(guān)鍵字的節(jié)點、其兄弟節(jié)點及其父節(jié)點中的一個關(guān)鍵字合并為
一個節(jié)點。1.3.4
B樹
、B-樹、B+樹和B*樹2.B-
樹4)B-
樹的刪除例如,要在如圖1-18所示的3階B-樹中刪除關(guān)鍵字“46”,刪除后該節(jié)點的關(guān)鍵
字個數(shù)為“0”,低于最低限制“1”,而它的左兄弟節(jié)點和右兄弟節(jié)點的關(guān)鍵字個
數(shù)都為最低限制“1”,所以只能將刪除關(guān)鍵字的節(jié)點、其兄弟節(jié)點及其父節(jié)點中
的一個關(guān)鍵字合并為一個節(jié)點。將關(guān)鍵字“46”刪除后,該B-樹如圖1-19所示。2458184665581824
65圖1-18一個3階B-樹
圖1-19刪除關(guān)鍵字“46”后的B-樹1.3.4B樹、B-樹、B+樹和B*樹3.B+
樹1)B+
樹的定義B+樹是B-樹的一種變體。
B+樹與B-樹的差異有以下幾點。(
1
)
在B-樹中,每個節(jié)點含有n個關(guān)鍵字和n+1棵子樹。在B+樹中,每個節(jié)點
含有n個關(guān)鍵字和n棵子數(shù),即每個關(guān)鍵字對應(yīng)一棵子樹。(
2
)
在B-樹中,每個節(jié)點(除根節(jié)點外)中關(guān)鍵字個數(shù)n的取值范圍是m/2-
1≤n≤m-1。而在B+樹中,每個節(jié)點(除根節(jié)點外)中關(guān)鍵字個數(shù)n的取值范圍是
m/2≤n≤m。(
3
)
在B+樹中,所有葉節(jié)點包含了全部關(guān)鍵字及指向?qū)?yīng)記錄的指針,且所
有葉節(jié)點按關(guān)鍵字從小到大的順序依次連接。(
4
)
在B+樹中,所有非葉節(jié)點僅起到索引的作用,即在節(jié)點中的每個索引項只
含有對應(yīng)子樹的最大關(guān)鍵字和指向該子樹的指針,不含有該關(guān)鍵字對應(yīng)記錄的存儲
地
址
。3.B+
樹1)B+
樹的定義例如,如圖1-20所示的一棵3階B+樹,其中葉節(jié)點的每個關(guān)鍵字下的指針指向
對應(yīng)記錄的存儲位置。通常在B+樹上有兩個頭指針:一個指向根節(jié)點,用于從根節(jié)
點起對樹進行查找、插入、刪除等操作;另一個指向關(guān)鍵字最小的葉節(jié)點,用于從
最小的關(guān)鍵字起順序查找和處理在每個葉節(jié)點中的關(guān)鍵字和記錄。由于B-樹只適合隨機檢索,B+樹同時支持隨機檢索和順序檢索,所以在實際中,B+樹應(yīng)用比較多,NTFS就是使用B+樹進行動態(tài)索引的。根599715445972971015
213744
5159
6372
8591971.3.4B樹、B-樹、B+樹和B*樹圖1-203階B+樹1.3.4
B樹、B-樹、B+樹和B*樹3.B+樹2)B+
樹的查找B+樹的查找與B-樹的查找類似,但也存在不同之處。由于與記錄有關(guān)的信息都存放在葉節(jié)點中,在查找時若在上層已找到待查找的關(guān)鍵字,則查找不會停止,而
會繼續(xù)沿指針向下一直查找到葉節(jié)點層的關(guān)鍵字。另外,B+樹的所有葉節(jié)點構(gòu)成一
個有序鏈表,可以按照關(guān)鍵字排序的次序遍歷全部記錄。將這兩種方式結(jié)合起來,
便使B+樹非常適合范圍檢索。3)B+
樹的插入B+樹的插入與B-樹的插入類似,不同之處在于B+樹是在葉節(jié)點上進行插入的。如果在葉節(jié)點中關(guān)鍵字的數(shù)量超過m
個,該葉節(jié)點就必須分裂成關(guān)鍵字數(shù)量大致相
同的兩個節(jié)點,并保證在上層節(jié)點中有這兩個節(jié)點的最大關(guān)鍵字。1.3.4B樹、B-樹、B+樹和B*樹3.B+
樹4)B+
樹的刪除當(dāng)B+樹中的關(guān)鍵字在葉節(jié)點層被刪除后,其在上層的副本可以保留,作為一個
“分解關(guān)鍵字”的存在。如果因為刪除操作而造成在節(jié)點中關(guān)鍵字的數(shù)量小于m/2-1個,其處理過程便與B-樹的刪除操作一樣。1.3.4
B樹、B-樹、B+樹和B*樹4.B*
樹B*樹是B+樹的變體,即在B+樹的非根節(jié)點和非葉節(jié)點中增加了指向兄弟的指針。
B*樹的非葉節(jié)點關(guān)鍵字的數(shù)量至少為2m/3
個,而B+樹的則是m/2
個。B+樹的分裂方法:當(dāng)一個節(jié)點滿時,分配一個新的節(jié)點,并將原節(jié)點中1/2的
數(shù)據(jù)復(fù)制到新節(jié)點中,最后在父節(jié)點中增加新節(jié)點的指針。B+樹的分裂只影響原節(jié)
點和父節(jié)點,不會影響兄弟節(jié)點,所以它不需要指向兄弟的指針。B*樹的分裂方法:當(dāng)一個節(jié)點滿時,如果它的下一個兄弟節(jié)點未滿,那么將一
部分數(shù)據(jù)移動到該兄弟節(jié)點中,再在原節(jié)點處插入關(guān)鍵字,最后修改在父節(jié)點中兄
弟節(jié)點的關(guān)鍵字;如果兄弟節(jié)點也滿了,則在原節(jié)點與兄弟節(jié)點之間增加新節(jié)點,
并各復(fù)制1/3的數(shù)據(jù)到新節(jié)點中,最后在父節(jié)點處增加新節(jié)點的指針。綜上可知,
B*樹比B+樹分配新節(jié)點的概率要低,空間利用率更高。1.3.4B樹、B-樹、B+樹和B*樹5.對B樹、B-樹、B+樹和B*樹的總結(jié)B樹:屬于二叉樹,每個節(jié)點只存儲一個關(guān)鍵字;如果查找的關(guān)鍵字與節(jié)點關(guān)
鍵字相等,那么該節(jié)點關(guān)鍵字即為查找的關(guān)鍵字;如果查找的關(guān)鍵字比節(jié)點關(guān)鍵字
小,就進入左子女節(jié)點;如果查找的關(guān)鍵字比節(jié)點關(guān)鍵字大,就進入右子女節(jié)點;
如果左子女節(jié)點或右子女節(jié)點的指針為空,則報告找不到相應(yīng)的關(guān)鍵字。B-樹:屬于多路搜索樹,每個節(jié)點存儲m/2-I到m-1個關(guān)鍵字;非葉節(jié)點關(guān)鍵字
存儲指向關(guān)鍵字范圍的子節(jié)點;所有關(guān)鍵字在整棵樹中出現(xiàn)且只出現(xiàn)一次。B+樹:每個節(jié)點存儲m/2
到m
個關(guān)鍵字;在B-樹的基礎(chǔ)上,
B+樹為葉子節(jié)點增
加鏈表指針;所有關(guān)鍵字都在葉節(jié)點中出現(xiàn);非葉節(jié)點作為葉節(jié)點的索引。B*樹:在B+樹的基礎(chǔ)上,
B*樹為非葉節(jié)點增加了鏈表指針,將節(jié)點的最低利用
率從1/2提高到了2/3。1.3.5
樹的遍歷樹的遍歷是樹的一種重要運算。遍歷是指對樹中所有的節(jié)點系統(tǒng)地訪問,即依次對樹中的每個節(jié)點進行訪問且僅訪問一次。二叉樹的3種最重要的遍歷方式分別稱為先序遍歷、中序遍歷和后序遍歷。在
以這3種方式遍歷一棵二叉樹時,若按訪問節(jié)點的先后次序?qū)⒐?jié)點進行排列,就能
分別得到在二叉樹中所有節(jié)點的先序列表、中序列表和后序列表。相應(yīng)的節(jié)點次序分別稱為節(jié)點的先序、中序和后序。多叉樹的遍歷通常有兩種:深度優(yōu)先遍歷和廣度優(yōu)先遍歷。1.3.5
樹的遍歷1.
先序遍歷先序遍歷是指先訪問根節(jié)點,再訪問子女節(jié)點的遍歷方式。若二叉樹為非空,
則遍歷過程如下。(1)訪問根節(jié)點。(2)先序遍歷左子樹。(3)先序遍歷右子樹。2.
中序遍歷中序遍歷是指先訪問左(右)子女節(jié)點,再訪問根節(jié)點,最后訪問右(左)
子女節(jié)點的遍歷方式。若二叉樹為非空,則遍歷過程如下。(1)按中序遍歷左子樹。(2)訪問根節(jié)點。(3)按中序遍歷右子樹。1.3.5
樹的遍歷3.
后序遍歷后序遍歷是指先訪問子女節(jié)點,然后訪問根節(jié)點的遍歷方式。若二叉樹為非
空,則遍歷過程如下。(1)按后序遍歷左子樹。(2)按后序遍歷右子樹。(3)訪問根節(jié)點。如圖1-21所示,D為在二叉樹中的某個節(jié)點,L、R分別為節(jié)點D的左、右子樹,則該二叉樹的遍歷方式有6種:先右后左DRLRDLRLD先左后右DLRLDRLRD先序中序后序圖1-21二叉樹示例1圖1-22二叉樹示例2用先序遍歷的方式,得到的結(jié)果為ABDECF。用中序遍歷的方式,得到的結(jié)果為DBEACF。用后序遍歷的方式,得到的結(jié)果為DEBFCA。1.3.5樹的遍歷3.
后序遍歷例如,以先左后右的方式用3種遍歷方法對如圖1-22所示的二叉樹進行遍歷。AEB①F謝謝觀看!第2章
數(shù)據(jù)恢復(fù)基本工具與Windows系統(tǒng)分區(qū)主編:王平均2.1
WinHex工具WinHex
是由X-Ways軟件技術(shù)公司開發(fā)的一款專業(yè)的磁盤編輯工具。該工具是在Windows系統(tǒng)下運行的十六進制編輯軟件,能支持Windows98
、Windows2000、Windows
XP和Windows
2003等操作系統(tǒng)。WinHex的功能非常強大,有著完善的分區(qū)管理功能和文件管理功能,能自動分析分區(qū)表鏈和文件簇鏈,并能以不同的方式進行不同程度的備份,直至克隆整
個硬盤。作為一款磁盤編輯軟件,
WinHex
具有所有編輯軟件所具有的通用功能(如查找、替換等),并能夠完整地顯示和編輯任何一種文件類型的二進制內(nèi)容
(用十六進制方式顯示)。其磁盤編輯器可以編輯物理磁盤或邏輯磁盤的任意扇
區(qū);其內(nèi)存編輯器可以直接編輯內(nèi)存,是一款非常好用的磁盤編輯軟件。2.1
WinHex工具要學(xué)習(xí)WinHex,
首先要學(xué)會其菜單的使用。
WinHex主界面如圖2-1所示,有“文件”“搜索”“位置”等菜單。禁WinHex
□
×文件(F)編(E)搜索(S)位置(P)童看(V)工具(T)專業(yè)工具(1)選項(O)窗口(M)幫助(H)宙
選
助
臨0
函
總
箔
銀
的
→
年中
?0即圖2-1
WinHex主界面2.1
WinHex工具1
.
“文件”菜單(1)“新建”命令。單擊“新建”命令,出現(xiàn)“建立新文件”對話框,如圖2-3所示,輸入要創(chuàng)建文件的大小,單位可以是B、KB、MB、GB。例如,輸入10KB,單擊“確定”按鈕,即可創(chuàng)建一個未命名文件,大小是10KB,由全零值構(gòu)成。此時,可以為這些零值賦予有意義的值,也可以復(fù)制任意文件的內(nèi)
容到該文件中,從而使新文件擁有了“靈魂”。如果熟悉匯編語言和文件編碼,則
可以像平時寫文章一樣,創(chuàng)造出任意格式和結(jié)構(gòu)的文件?!跣陆?M).打開(Q)...保存(S)另存為(A)制作備份復(fù)制(M)恢復(fù)鏡像文件(I).備份管理器(M)..Ctrl+NCtrl+0Ctrl+8AltCF12執(zhí)行(E)打印(P)自屬性(I).選打開文件夾(F).保存修改的文件(D)保存所有文件(L)退出(X)Ctrl+E
Ctrl+P
Alt+回車Ctrl++Alt+F4建立新文件需要的文件大小(S)10
KB確定Q)
取消A)圖2-2展開后的“文件”菜單圖2-3“建立新文件”對話框2.1
WinHex工具1
.
“文件”菜單(2)“打開”命令。通過“打開”命令可以瀏覽任意文件的十六進制
(Hex)編碼、字符串等,甚至連磁盤鏡像文件或部分加密文件都可以輕松解析出來。打
開文件后即可進行各種修改、裁剪、填補、銷毀操作。此時,主界面的右邊會顯示該文件的各種屬性參數(shù),如大小、創(chuàng)建時間等。但應(yīng)注意,普通文件被打開后將不再以扇區(qū)為單位進行顯示,而是以“頁面”方
式進行顯示,還可以看到原本扇區(qū)之間的分割線已經(jīng)消失。單個頁面沒有固定大
小,純粹是顯示單位。當(dāng)然,如果遇到特殊情況,打開的是一個原始磁盤鏡像文
件,按頁面瀏覽時就會產(chǎn)生諸多不便,定位扇區(qū)、解釋文件系統(tǒng)等工作將無法完
成,這時就需要將鏡像文件轉(zhuǎn)換為磁盤,將此文件強制按照每512B/扇區(qū)進行處
理。這樣WinHex介質(zhì)管理器就會視此文件為一個標準磁盤,從而激活許多針對
磁盤的特殊功能。2.1
WinHex工具1
.
“文件”菜單(3)“保存”命令。通過“保存”命令可以保存對文件或磁盤的修改。(4)“另存為”命令。通過“另存為”命令可以更改文件名。(5)“制作備份復(fù)制”命令?!爸谱鱾浞輳?fù)制”命令是WinHex
最常用、最重要的功能之一,被廣泛應(yīng)用于電子取證、磁盤克隆、數(shù)據(jù)備份等領(lǐng)域。通過該命令可以打開“創(chuàng)建磁盤鏡像”對話框,如圖2-4所示。創(chuàng)建磁盤鏡像(硬盤1,0.9TB)鏡像文件格式◎原始鎮(zhèn)像格式(dd.001,可分割)
證據(jù)文件(e01.可分割和壓縮)OWinHex
備份文件(who)路徑和文件名:◎G.irhex16.0
存儲VHGSTHTS54101087
調(diào)查員,機構(gòu)內(nèi)部描述Id)□結(jié)束后關(guān)閉計算機確定Q)
取消(A)1953525167□計算哈希值M)CRC32壓縮[C]
無?分割鏡像文件大小[p]幫助H)圖2-4“創(chuàng)建磁盤鏡像”對話框2.1WinHex工具1
.
“文件”菜單(6)“恢復(fù)鏡像文件”命令。通過該命令可以將已成型的鏡像文件還原到分區(qū)或
者磁盤中。注意目標磁盤的環(huán)境最好與鏡像文件相仿,不然會產(chǎn)生問題,給下一步
工作帶來困難。(7)“備份管理器”命令。通過該命令可以對備份文件進行管理、歸類、錯誤檢
查。但是如果一次備份過多文件,就會嚴重占用磁盤空間,所以應(yīng)定期刪除過期或
無用的備份。(8)“執(zhí)行”命令。通過該命令可以用對應(yīng)的軟件打開當(dāng)前文件。(9)“打印”命令。通過該命令可以打印當(dāng)前頁面。(10)“屬性”命令。通過該命令可以顯示指定文件的基本屬性,如體積大小、創(chuàng)
建時間、修改時間、訪問時間。2.1
WinHex工具1
.
“文件”菜單(11)“打開文件夾”命令。通過該命令可以打開根目錄下所有擴展名為doc的文件,大大減少工作量,如圖2-5所示。此處需注意的是,在對象目錄中的文件不宜過多,否則會長時間無法完成任務(wù),甚至造成系統(tǒng)崩潰。打開文件夾winhex16.0存儲名
稱沒有與搜索條件匹配的項。快速訪問桌面G:\winhex16.0
存儲□必須包含指定文本(T)□
必須包含指定十六進制值(V)□包含下級目錄(I)網(wǎng)
絡(luò)
打開(Q)
取消(A)幫助(H)圖2-5批量打開文件通配符過濾·doc缺省編輯模式此電腦修改2.1
WinHex工具1
.
“文件”菜單(12)“保存修改的文件”命令。如果一組文件被批量修改,那逐一保存會花費很
多時間和精力,
WinHex
的批量保存文件功能有效解決了這一問題,在這里只保存修
改過的一類文件。(13)“保存所有文件”命令。通過該命令可以將全部打開文件進行保存。(14)“退出”命令。通過該命令可以退出WinHex軟件。2.1
WinHex工具2
.
“編輯”菜單“編輯”菜單是WinHex中操作性最強的菜單。展
開后的“編輯”菜單如圖2-6所示。通過“編輯”菜單可以進行字節(jié)級文件修改工作,例如,粘貼偏移的數(shù)據(jù)到正常方位;從磁盤中提取任意數(shù)據(jù)段并寫入新文件等。對于已經(jīng)定義大小的文件項目,甚至可以采用“補充0字節(jié)”的方式進行擴容。對于具有保密要求的文件或磁盤,可以利用“修改數(shù)據(jù)”命令的各種邏輯代數(shù)算法進行簡單的加密。例如,對某硬盤的所有數(shù)據(jù)進行異或修改,而要使用這些數(shù)據(jù)時,再利用已知元素逆運算恢復(fù)回來。總之,掌握“編輯”菜單的相關(guān)命令是熟練使用WinHex的關(guān)鍵。編揖(E)
搜索(S)位置(P)查看(010撤銷(V)Ctrl+Z剪切(T)
Ctrl+X
復(fù)制扇區(qū)(C)剪貼板數(shù)據(jù)(B)移除(R).
Del粘貼0字節(jié)(P)...Ctrl+0定義選塊(D)..全選(A)
Ctrl+A
清除選塊(E)
Esc轉(zhuǎn)換(V).Ctrl+R
修改數(shù)據(jù)(M).
Ctrl+T填充磁盤扇區(qū)(1)...
Ctrl+L圖2-6展開后的“編輯”菜單2.1
WinHex工具2
.
“編輯”菜單(1)“撤銷”命令。通過該命令可以更正某些錯誤的修改。此命令與Word軟件中
的“撤銷”命令是一個作用,但不能無限制地撤銷,已經(jīng)保存的數(shù)據(jù)是不能撤銷的。(2)“剪切”命令。通過該命令可以將一定范圍的字節(jié)或字符串移動到另一位置。
例如,當(dāng)出現(xiàn)文件頭偏移導(dǎo)致文件無法打開時,只需要將文件頭剪切并粘貼回文件開始的部位即可。也可以用此命令將一個文件的內(nèi)容轉(zhuǎn)移到另一個文件中,或是將兩個文件拼接為一個大文件。但注意最好不要進行超大規(guī)模(包含幾百MB或幾GB大小的文件)的剪切操作,有可能會造成系統(tǒng)崩潰。2.1WinHex工具2
.
“編輯”菜單(3)“復(fù)制扇區(qū)”命令。該命令為最常用到的命令之一。在數(shù)據(jù)恢復(fù)中,應(yīng)準確
地判斷數(shù)據(jù)恢復(fù)的字節(jié)范圍,并將數(shù)據(jù)復(fù)制到合適的地方。例如,當(dāng)分區(qū)引導(dǎo)扇區(qū)
(Dos
Boot
Record,DBR)
嚴重損壞時,磁盤分區(qū)會提示“未格式化”字樣,此時
就需要找到DBR
的備份并將其復(fù)制到該分區(qū)的首扇區(qū),數(shù)據(jù)恢復(fù)工作也隨之完成。
“復(fù)制扇區(qū)”命令下面還包含了很多子命令,如圖2-7所示。撤銷(I)
Ctrl+Zo10
的
鄰
能剪切(T)
Ctrl+X復(fù)制扇區(qū)C正常(Q)
Ctrl+C至新文件(E)
Ctrl+Shift+N剪貼板數(shù)據(jù)(B)移除(R)
Del十六進制數(shù)值(H)Ctrl+Shift+C
編輯器顯示(E)
Alt+Shift+C粘貼0字節(jié)(P)..
Ctrl+0定義選塊(D)...全選(A)
Ctrl+A
清除選塊(E)
EseGREPHexC源碼(C)Pascal源碼(P)轉(zhuǎn)換(Y)..
Ctrl+R
0102修改數(shù)據(jù)(M)...
Ctrl+T填充磁盤扇區(qū)(1)...Ctrl+L000000
33
C08E
D0
BC
oCD0001
0
06
B90002
FC
F3D00020|BD
BE
07807E
0C圖2-7“復(fù)制扇區(qū)”命令下的子命令Offset01234567
89
A
B
C
D
E
F000000000000000000100000000020000000003000000000400000000050000000006000000000700000000080000000009000000000A000000000B000000000C000000000D000000000E000000000F000000001000000000110000000012033C0BE
D0
BC
007C
8E
C08E
D8
BE
007C
BF
003A1DM
|1A12※1206B90002
FC
F3A450
681C
06
CB
FB
B904001
uóPh
EuBD
BE
07807E
00007C
OB
OF
850E
0183
C510321~
I
IAE2F1CD1888560055C6461105C6461000ani
IV
UAF
EFB441BBAb55
en
13.5n
720F
81FB
55
AA
7509A》sUf
]ruUuF7
C101撤銷(Ⅱ)Ctrl+260807E100074÷A
t
pF
f1~t26
66
68剪切(7)
Ctr1+X086800006800&fhfyv
h
h7C
6801夏制扇區(qū)Q臨正常(Q)Ctrl+C至新文件(E)
Ctrl+Shift+Wh
'BIV
lof剪貼板數(shù)據(jù)(B)移除(R)
Delle,》
|IV十六進制數(shù)值(H)Ctrl+Shift+C
編輯器顯示()Alt+Shift+C8A
76
01IN
In
f
fas
p
1~1112lel4E
11
75粘貼0字節(jié)(P)Ctrl+055
32
E4定義選塊(2).全迭(A)
Ctrl+A
清除選塊(E)
EseGREPHexC源碼(C)Paseal源碼(P)iv
f
lel
>p}UAA
75
6EE8
83
00jveuúNedB?èyeedeu00
FB
B8UD010轉(zhuǎn)換(V).修改數(shù)據(jù)()
….
填充迭塊(L)Ctrl+R
Ctrl+TCtrl+L753B
6681
FB
54ü,》f
f#Au;f
uT43
50
412C
666807
BB
00CPAu2
ü
r,fh
》00
66
68000000665366fhfhfSf53
66
55
6668000000
006668007C000066SfUfh
fh|f6168
000007CD1A5A
32F6EA007C
0000CDah
f
Z2oe
|2.1
WinHex工具2
.
“編輯”菜單①“正?!泵?。該命令是WinHex內(nèi)部使用的復(fù)制方式,只能粘貼在WinHex內(nèi)部,
是使用最頻繁的命令。在使用時,先選中一段內(nèi)容,在扇區(qū)處右擊,運行“編輯”→“復(fù)制扇區(qū)”→“正常”命令,即可復(fù)制扇區(qū)的內(nèi)容,如圖2-8所示。圖2-8“正?!泵?3
C49F2.1
WinHex工具2
.
“編輯”菜單在目標位置,右擊,運行“編輯”→“剪貼板數(shù)據(jù)”→“寫入”命令(如圖2-9所示),就會出現(xiàn)如圖2-10所示的寫入提示,單擊“確定”按鈕就即可將數(shù)據(jù)寫入
目標位置,文件的大小不會改變。12u1AEFU~uth
lof
|IV
as
p
21el>p}U·Rad
edeu
f
uT
h
》
fSf
I
fOffset
0
23
4
56
7
8
94
BCEF000000000000000000100000000020000000003000000000400000000050000000006000000000700000000080000000009000000000A000000000B000000000C000000000D000000000E000000000F000000001000000000110nnnnnn1園3
C06
B
BD
BE2
FB44F7
C26
67C6
9F
8
8A
7
4E
1553.
AA
7
E8800
FL0
8E9
00
F
07D002anBC
00
7C
8EFC
F3
A4
50
75
nn
nn
70C068
QB8E1C0FD8
0685BECB0E00
FB
017CB9
83BF0004
00C5
103AID4
|1A10%uó"Ph
Ex1~
I
1an1
IV
UAEFA》ouf
]r
u+A
t
pF
f'1|
fhh
BI
yv
h11A
le
》Iv
IN
In
I
f
Nu
I~I
11
U2aIVf
]ěl
un
y
v白u
u
è1*Beè*yu,》1
f#Au;CPAu2
ü
r,ffh
fhSfUfh
fh+7
t撤銷<)Ctr1+2672460F118105FBC6
4655
AA10
007509剪切(T)
Ctrl
復(fù)制扇區(qū)C)0
c6.60
o07
10.0074
貼頻故據(jù)作)
移除化)Dal粘貼0字節(jié)(P)
Ctrl+0黏貼(
F)
Ctrl+4
曬
馬!入⑧
粘貼至新文件(FShift+Ins
清空剪貼板(E)0130定義選塊(D).全選(b)
CtrlX
青除選塊(F)
EseJ3
CD
1366
61
73
IC
FEF
84
8A
00
B2
80
EB
845D
EB
9E81
3E
FE
7D
55po75
17
FA
B0
D1
E6
64
c
00
B0
FF
E6
64
E8
75
23C075
3B66
81
FB
54臨
轉(zhuǎn)!換(V
Ctrl+
修改數(shù)據(jù)(D).
Ctrl+T
填充選塊(L)
Ctrl+L430053615041753281F90266
68
00(0200
00
666
n5
6807
0
100
E000168003372
2C08
0066
68
FE
FA66
68
07
BB
0000
00
66
536600
7C
00
0066nn
70
nn
nn
an06Vfh&WinHex剪貼板數(shù)據(jù)將被寫入偏移地址0。確定Q)
取消Δ)圖2-9“寫入”命令
圖2-10寫入提示2.1
WinHex工具2
.
“編輯”菜單③“十六進制數(shù)值”命令。該命令只針對十六進制字節(jié)進行提取,在很多情況下可以作為正常復(fù)制的功能使用。它的優(yōu)勢是可以把Hex值復(fù)制到WinHex以外的系統(tǒng)。如要將某分區(qū)的引導(dǎo)扇區(qū)復(fù)制到記事本中,應(yīng)先選中需要復(fù)制的內(nèi)容,然后右
擊,運行“復(fù)制”→“十六進制數(shù)值”命令,再粘貼到記事本中即可,如圖2-12所
示。此功能在研究編碼轉(zhuǎn)換時非常有用。Offset0123
45
6
7
89
A
B
CD
EF00000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000c00D0000D0000000E0000000F00000010000000110000001200000013000000140D0CF
11EOA1
B11A
E10000000000000000DY
ai±a00000000000000003E000300FEFF0900py060000000000000000000000010000002F
000000000000000010000031000000101000000
FE
FF
FF
FF
000000002E
000000pyyyFFFFEFFFFF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FFyyyyyyyyyyyyyyyyFF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FE
FF
FF
FF
FFFrrr
rr
rr
rE
Fr
Er
rEyyyyyyyyyyyyyyyyFF-ErE-Errr
FrrFrEFF
新建文本文檔-記事本
□
X.yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyFF
文件(F)編輯(E)楷式(O)查看(V)幫助(H)FFIDOCF11EOA1B11AE1000000000000000000000000000000003yyyyyyyyyyyyyyyyyyyyyFFFFFFFFFFFFFFFFFFFFE000300FEFF0900060000000000000000000000010000002F00000000000000001000003100000001000000FEFFFFFF000000002E000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFyyyyy
yyyy圖2-12運行“十六進制數(shù)值”命令Offset0
1
2
3
45
678
9
A
B
C
DE
F0000203000
00
00
00
00
00
0000
00
00
00
00
00
00000000002040D0
CF
11
E0
A11B1
1A
E1
00
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學(xué)年統(tǒng)編版八年級上冊歷史期末復(fù)習(xí)課件
- 某著名企業(yè)五局華東建設(shè)高處作業(yè)培訓(xùn)
- 電機與電氣控制技術(shù) 課件 任務(wù)7.4 三菱變頻器的多段速控制
- 哮喘藥物治療方案要點2026
- 《GBT 5124.1-2008硬質(zhì)合金化學(xué)分析方法 總碳量的測定 重量法》專題研究報告
- 道路安全培訓(xùn)資料課件
- 道路作業(yè)安全知識培訓(xùn)課件
- 2026年冀教版五年級語文上冊月考試題解析及答案
- 2025-2026年人教版初一英語上冊期末試題解析+答案
- 迪士尼品牌介紹
- 鋼管桿組立作業(yè)安全培訓(xùn)課件
- 直播間設(shè)計裝修合同范本
- 建設(shè)用地報批服務(wù)投標方案
- 非靜脈曲張上消化道出血的內(nèi)鏡管理指南解讀課件
- 新生兒消化道出血
- 2025年可愛的中國測試題及答案
- 油費補助管理辦法
- 新食品零售運營管理辦法
- 強制性產(chǎn)品認證實施規(guī)則 低壓電器 低壓元器件(CNCA-C03-02:2024)
- 《實踐論》《矛盾論》導(dǎo)讀課件
- 農(nóng)村殺豬活動方案
評論
0/150
提交評論