数据恢复实用技术
上QQ阅读APP看书,第一时间看更新

任务1.2 认识数据的逻辑运算

数制是指用一组固定的符号和一套统一的规则来表示数值的方法。其中,按照进位方式计数的数制称为进位计数制。

(1)十进制数

日常生活中常用0、1、2、3、4、5、6、7、8、9这10个数码组成的数码串来表示数字,逢十进一。10就是基数,推而广之,设R表示基数,则称之为R进制,使用R个基本的数码,其加法规则为“逢R进一”。在R进制中,数码所表示数的大小不仅与基数有关,而且与其所在的位置有关,Ri就是位权。对于任意一个具有n位整数和m位小数的R进制数N,按位权展开式可表示为

(N)R=an-1Rn-1+an-2Rn-2+…+a1R1+a0R0+a-1R-1+…+a-mR-m

式中,ai表示数位上的数码,其取值范围为0~(R-1),R为基数,i为数位的编号。

【例1-1】 按位权展开十进制数521.34。

521.34=5×102+2×101+1×100+3×10-1+4×10-2

(2)二进制数

将基数R的值取2,就是二进制。二进制只有0和1两个数码,所以只需要两种稳定状态,如高或低、有或无来表示二进制。而十进制则要有10种稳定状态物理现象,相比二进制就比较困难。

二进制运算规则简单,加法规则为“逢二进一”,即

0+0=0,1+0=1,0+1=1,1+1=10

乘法规则为:有0出0,全1出1,即

0×0=0,0×1=0,1×0=0,1×1=1

采用二进制的符号“1”和“0”来表示一个数的时候,其位数要比用十进制长得多,书写和阅读都非常不方便,也不便理解,所以又采用了十六进制来弥补二进制的不足。

(3)十六进制数

十六进制的基数是16,采用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个数码,加法规则是“逢十六进一”。通常进制之间的对应关系见表1-1。

表1-1 进制之间的对应关系

(续)

各种进制的表示通常有两种方法。一种方法是采用括号括起来,在括号下角写上基数用来表示相应的数值。例如:(520)10表示十进制数,(520)16表示十六进制。另一种方法是在数的后面加不同的字母来表示不同的进制,其中D表示十进制,B表示二进制,Q表示八进制,H表示十六进制。如100101B表示二进制数,100101H则表示十六进制数。

(4)进制之间的转换

非十进制数转成十进制数的方法为,把非十进制数按位以对应的权值展开,然后累加求和。

【例1-2】 将二进制数1011.011转成十进制数。

1011.011B=1×23+0×22+1×21+1×20+0×2-1+1×2-2+1×2-3=11.375D

【例1-3】 将十六进制数D52A转成十进制数。

D52AH=13×163+5×162+2×161+10×160=54570D

当然在数据恢复的实践中,一般不需要手工计算,可以直接调用计算机系统里自带的计算器(calc.exe),如图1-4所示,选择菜单“查看”→“程序员模式”命令,在相应的进制里输入一个数,再单击想要切换的进制即可。

二进制的算术运算与十进制数的运算相似,也有加、减、乘、除四则运算,相对于十进制数的运算,二进制的运算要简单得多,在存储器内部基本上是加法运算,其他的运算一般是采用加法和移位实现,逻辑运算包括“与”“或”“非”“异或”等操作。

数据恢复中,一般文件中毒的破坏就是将数据进行有关运算,只有了解相关的运算后才能对该类型的问题进行相应的处理。

图1-4 Windows系统自带的计算器

1.2.1 逻辑或

“或”运算又称为逻辑或,用符号“∨”表示,运算口诀为:有1出1,全0出0。当几个数值相或时,只要有一个是1,其他不管是多少,结果都为1,只有当几个数值全为0时,结果才是0。

假设数值1为A,数值2为B,输出为Y,则逻辑表达式为

Y=A∨B

逻辑或真值表如表1-2所示。

表1-2 逻辑或真值表

1.2.2 逻辑与

“与”运算又称为逻辑与,用符号“∧”表示,该运算口诀为:有0出0,全1出1。当几个数值相与时,只要有一个是0,其他的不管是多少,结果都是为0,只有当几个数值全为1时,结果才是1。逻辑与的表达式为

Y=A∧B

逻辑与真值表如表1-3所示。

表1-3 逻辑与真值表

1.2.3 逻辑非

“逻辑非”指本来值的反值,用符号“!”表示,该运算输出相应的反值,即!1=0,!0=1,逻辑非真值表如表1-4所示。

表1-4 逻辑非真值表

1.2.4 逻辑异或

异或(exclusive OR,XOR),数学符号为“⊕”,计算机符号为“XOR”。其运算法则为Y=A⊕B=(!A∧B)∨(A∧!B)

参与异或运算的两个数,如果两个相应二进制位数值相同,则结果为0,否则为1。通俗地讲,异或就是相同的出0,不同的出1,其真值表如表1-5所示。

表1-5 逻辑异或真值表