




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第二章数据的表示和运算2§2.1数据的编码一、数制及其转换1、进位计数制*进位计数制:又称进制或数制,是用一组固定的符号和统一的规则来表示数值的方法。有数码、基数和位权3个基本参数*常用的4种进制:二进制八进制十进制十六进制数码0,10,1,…,70,1,…,90,1,…,9,A,B,…,F基数281016位权2i8i10i16i书写形式BODH*R进制数表示:(N
)R=(kn-1…k1k0.k-1k-2…k-m)R=其中,ki∈{0,1,…(R-1)}32、R进制数转换成十进制数例1—(101.01)2=(1×22+1×20+1×2-2)10=(5.25)10(3A.C)16=(3×161+10×160+12×16-1)10=(58.75)103、十进制数转换成R进制数(1)十进制数整数转换成R进制数整数例2—
余数2191(最低位)291240220211(最高位)0(19)10=(10011)2
余数8193(最低位)822(最高位)0(19)10=(23)8*转换规则:按位权展开*整数转换规则:除基取余、上右下左4(2)十进制数小数转换成R进制数小数
整数部分0.6875×2=1.3751(最高位)0.375×2=0.750
0.75×2=1.510.5×2=1.01(最低位)(0.6875)10
=(0.1011)2
整数部分0.6875×8=5.55(最高位)0.5×8=4.04
(最低位)(0.6875)10
=(0.54)8
例3—将(0.6875)10分别转换成二、八进制数(3)十进制数转换成R进制数
*转换规则:整数部分、小数部分分别转换后再合并练习1—(19.6875)10=(X)2=(Y)8,X=?Y=?*小数转换规则:乘基取整、上左下右54、二、八、十六进制数相互转换*隐含规律:2=21,8=23,16=24(1)二进制、八进制数相互转换*转换规则:①从小数点向两边分别转换;②3个二进制数位(不够时补零)等价于1个八进制数位例4—(13.724)8=(001
011.111
010
100)2=(1011.1110101)2
(10011.01)2=(010
011.010)2=(23.2)8
(2)二进制、十六进制数相互转换*转换规则:①从小数点向两边分别转换;②4个二进制数位(不够时补零)等价于1个十六进制数位例5—(2B.E)16=(0010
1011.1110)2=(101011.111)2
(11001.11)2=(0001
1001.1100)2=(19.C)16
6二、机器数及其编码*数值数据:组成—由符号、小数点及数值构成,可缺省符号及小数点运算—①符号与数值分开运算;②加减法需先比较大小*机器数:符号数字化的数,通常0/1表示+/-;
如(+101)2→(0101)2、(-0.101)2→(-.101)2→(1.101)2真值—带“+”或“-”符号的数*机器数的运算方法:①采用手工运算方法,硬件实现很不方便;如—(+x)+(-y)时,先求x-y、再求结果符号、最后求x-y或-(y-x)
☆②采用新运算方法,便于硬件实现(如符号与数值一起运算)└→必须使用新的编码方法!*机器数的编码方法:原码、补码、反码、移码等71、原码表示法(原码编码方法)*基本思想:用0/1表示符号+/-,数值位为真值的绝对值*纯整数原码定义:
设X=±xn-2…x0,xi=0或1,则[X]原=xn-1xn-2…x0,[X]原
=X
0≤X<2n-12n-1
-
X
=
2n-1
+|X|-2n-1<X≤0例1—[+1101]原=01101;[-1101]原=11101例2—设[X]原=1101,则X=-101例3—设[+X]原=0110,则[-X]原=1110;[+X]原=0000,则[-X]原=1000,即[+0]原≠[-0]原练习1—若X=-01000,[X]原=?若[X]原=101010,X=?8*纯小数原码定义:
设X=±0.x-1…x-(n-1),则[X]原=x0.x-1…x-(n-1)[X]原
=X
0≤X<11-X=1+|X|-1<X≤0例4—[+0.1001]原=0.1001;[-0.1001]原=1.1001例5—[X]原=1.01,则X=-0.01*原码的特性:①X与[X]原关系—·[X]原与X表示值的范围相同,·[+0]原≠[-0]原;②运算方法—符号与数值分开运算(与手工运算一致)
└→适合于乘除法,加减法较复杂92、补码表示法*目标:实现符号与数值一起运算*有模运算:运算时只计量小于“模”的部分,多余部分被丢弃模—计量系统的计数范围;(1)有模运算与补数示例—将时针从10点拨向7点,有两种拨法:①倒拨10-3=7;②顺拨10+9=7+12=7*补数:若a、b、M满足a+b=M,称a、b互为模M的补数同余—若A、B、M满足A=B+kM(k为有符号整数),则记
A≡B(mod
M),称B和A为模M的同余
运算特征—c-a
=
c-(M-b)
=
c+b
(modM),即减去一个数等价于加上这个数的补数└→可将减法运算转化为加法运算10*数据编码思路:使数值部分无减法运算①负数用其正补数表示,正补数可用模加负数求得;例—-4≡8(mod12),即8=12+(-4)②正数用其本身表示,即正数的同余数例—8≡8(mod12),即8=8+12(mod12)(2)补码定义*基本思想:设模为M,真值X的[X]补=M+X(modM)*纯整数补码定义:
设X=±xn-2…x0,xi=0或1,则[X]补=x’n-1x’n-2…x’0,即[X]补
=
2n
+X(mod2n)
=X
0≤X<2n-12n
+X=2n
-|X|-2n-1≤X<0说明—因X连同符号位共n位,故模为2n11例6—[+0001]补=00001,[-0001]补=10
0000-0001=11111[+1111]补=01111,[-1111]补=10
0000-1111=10001练习2—若X=-01000、Y=+01000,[X]补=?[Y]补=?例7—n=5、X≥0时,最大[X]补=01111,Xmax=24-1=+15
X<0时,最小[X]补=10000,Xmin=-24=-16
原码无11…1110…0110…00
00…0000…0101…11补码10…0010…0111…1100…0000…0101…11真值-2n-1-(2n-1-1)
-1
0
+1+(2n-1-1)[+0000]补=[-0000]补=00000※数0的补码惟一※正数补码最高位(符号位)为0,负数最高位为1※补码表示数的个数比原码多1个12*定点纯小数补码定义:
设X=±0.x-1…x-(n-1),则[X]补=x’0.x’-1…x’-(n-1)[X]补
=
2+X(mod2)
=X
0≤X<12+X=2-|X|-1≤X<0例8—[+0.1011]补=0.1011[-0.1011]补=2-0.1011=10.0000-0.1011=1.0101
说明—因X的计量范围为-1+2-(n-1)~+1-2-(n-1),故模为21013②设纯整数X=-xn-2…x0,[Y]补=1yn-2…y0,xi和yi=0或1则[X]补
=
2n+X
=
[2n-1+(2n-1-1)+1]+X
=10
…
0+1
…
1
+
1=1
0
…
0+1-
xn-2…x0+
xn-2…x0=
1
xn-2…x0
+
1(3)补码的特性*X与[X]补的关系:①设纯整数X=+xn-2…x0,[Y]补=0yn-2…y0,xi和yi=0或1则[X]补
=
X
=
0xn-2…x0
Y
=
[Y]补
=
+
yn-2…y0
Y
=[Y]补-2n
=
1yn-2…y0-[2n-1+(2n-1-1)+1]=
2n-1-2n-1
-(
1…1
-
yn-2…y0
+
1
)
=
-(
yn-2…y0
+
1
)纯小数真值与补码的关系—上述方法同样适用,自行推导14△X→[X]补—
若X为正数,改符号位为0,其余各位不变;若X为负数,改符号位为1,其余各位取反、末位加1例9—X=+0101,[X]补=X=-0101,[X]补=0
0101;1
1011△[X]补→X—
若[X]补最高位为0,改其为正号,其余各位不变;若[X]补最高位为1,改其为负号,其余各位取反、末位加1例10—[X]补=0
0101,X=+
0101;[X]补=1
1011,X=-
010115△[X]原→[X]补—
若[X]原最高位为0,[X]补=[X]原;
若[X]原最高位为1,[X]补=[X]原各数值位取反、末位加1例11—
[X]原=0
0101,[X]补=0
0101;[X]原=1
0101,[X]补=1
1011△[X]补→[X]原—
若[X]补最高位为0,[X]原=[X]补;
若[X]补最高位为1,[X]原=[X]补各数值位取反、末位加1例12—
[X]补=0
0101,[X]原=0
0101;[X]补=1
0101,[X]原=1
101116*[X]补与[-X]补的关系:设纯整数[X]补=xn-1xn-2…x0,xi=0或1,则
当X≥0时,X
=
[X]补,其中xn-1=0,
[-X]补
=
1xn-2…x0
+1
=
xn-1xn-2…x0
+1
当X<0时,[X]补
=
2n
-|X|,其中xn-1=1,
[-X]补
=|X|=
2n
-[X]补=11…1-[X]补+1
=
xn-1xn-2…x0
+1△[X]补→[-X]补—[X]补的各位取反(含符号位)、末位加1[-X]补→[X]补—[-X]补的各位取反(含符号位)、末位加1例13—[X]补=1
0110,[-X]补=
0
1001+1=
0
1010
练习3—若X=-01001,[-X]补=?若[X]补=101010,[-X]补=?-X=?17
0
01001
0
01001
练习4—
①若X=+01001,[X]原=,[X]补=;
②若X=-01010,[X]原=,[X]补=;
1
01010
1
10110
+
01010
0
01010
③若[X]原=001010,X=,[X]补=;
④若[X]原=101110,X=,[X]补=;
-
01110
1
10010
+
01110
1
10010
⑤若[X]补=001110,X=,[-X]补=;
⑥若[X]补=101110,X=,[-X]补=;
-
10010
0
10010
0
10101
0
10101
⑦若[-X]补=101011,[X]补=,[X]原=;
⑧若[-X]补=001001,[X]补=,[X]原=
1
10111
1
01001
714183、反码表示法*目标:作为原码与补码相互转换时的一种过渡编码*纯整数反码定义:
设X=±xn-2…x0,xi=0或1,取模=2n-1,则[X]反
=
(2n-1)+X(mod2n-1)
=X
0≤X<2n-1(2n-1)+X-2n-1<X≤0*纯小数反码定义:
设X=±0.x-1…x-(n-1),xi=0或1,模=2-2-(n-1),则[X]反
=
(2-2-(n-1))
+
X(mod2-2-(n-1))
=X
0≤X<1(2-2-(n-1))+X-1<X≤0例14—[+1101]反=01101,[-1101]反=1001010例15—[+0.1101]反=0.1101,[-0.1101]反=1.001019*反码与补码关系:若X为正数,[X]补=[X]反;若X为负数,[X]补=[X]反+111
原码、补码、反码比较:
①机器数的最高位均为符号位(0/1表示正/负);原码无11…1110…0110…00
00…0000…0101…11反码
无
10…0011…1011…11
00…0000…0101…11补码10…0010…0111…1100…0000…0101…11真值-2n-1-(2n-1-1)
-1
0
+1+(2n-1-1)④[+0]补=[-0]补,补码比原码、反码多表示一个负数②若真值X为正数,[X]原=[X]补=[X]反;③若真值X为负数,[X]补=[X]反+1,[X]反=[X]原各位求反(符号位除外);204、移码表示法*目标:实现符号与数值一起编码
←数连续时编码连续*纯整数移码定义:
设X=±xn-2…x0,其中xi=0或1,取模=2n,则[X]移
=
2n-1+X(mod2n)
=
2n-1
+
X-2n-1≤X<2n-1例16—[-111]移=0001,[-001]移=0111,[±000]移=1000,[+001]移=1001,[+111]移=1111,[-1000]移=0000补码10…0010…0111…1100…0000…0101…11移码
00…0000…0101…1110…0010…0111…11真值-2n-1-(2n-1-1)
-1
0+1+(2n-1-1)*移码的特性:①数在数轴上为连续编码(无符号数),便于比较大小;②[X]移=[X]补符号位取反、其余各位不变21三、十进制数编码*BCD码(BinaryCodedDicimal):又称二-十进制编码,是指用4位二进制编码表示1位十进制数位的编码方式。*BCD码种类:分有权码和无权码两种,最常用的是8421码。十进制数01234567898421码0000000100100011010001010110011110001001余3码0011010001010110011110001001101010111100
BCD码缺省指8421码(特殊声明除外)!*十进制数的编码方法:①对各数位按序用BCD码编码,符号编码放在最后;②用特定编码表示符号(如1100和1101表示正和负)。
例—+427表示为0100001001111100
-123表示为000100100011110122四、字符及字符串编码1、字符编码*字符编码:字符在字符集中惟一的数字化代码,表示字符在字符集中的序号或特征号*字符编码的类型:有输入码、内码、交换码、字模码4种
与输入法、字符集大小有关与字体、字号大小有关字符交换时的编码(序号),仅与字符集大小有关字符存储时的编码(数据表示),与字符集大小、存储字长有关键盘计算机B转换处理传送字模码内码输入码交换码显示器传送计算机A交换码内码内码字符数据字符字模库MEM交换码23*有关字符编码的约定:
字符编码—均指交换码的编码!
字符数据—均指内码的编码!*常见字符编码(交换码)种类:编码种类码点数量编码长度说明ASCII码1287美国标准信息交换码,英文,使用最广泛EBCDIC码2568扩展二-十进制交换码,英文,IBM定义Unicode码6553616统一字符码,支持各国语言,使用较广泛ANSI码2568美国国家标准协会交换码,英文,含ASCII码GB2312-80744514汉字国标码,中文①码点数量—需编码的信息数量;(如交换码指字符数,字模码指字符点阵数)②编码长度—采用等长编码,长度=log2
码点数量242、字符串编码*字符串特性:
①由多个字符构成;②所含字符数不固定。*字符串编码方法:①由各个字符编码组成;②通过特定编码标志字符串的结束,结束编码放在最后
└→字符集必须包含该字符(如ASCII码中编码为0的字符)例—C语言中字符串“am”可编码为1100001110110100000025*冗余校验思想:①用待发数据(M)形成校验信息(P),M与P一起传送;②用接收数据(M’)形成新校验信息(P”),检错并纠错五、校验码存储器或传输线路M函数fP输出方比较器P”P’纠正器M函数fM’输入方状态*术语:校验码—由数据位和校验位组成的信息编码;检错(检验)—检查数据在传送过程中有/无错误;纠错(校正)—根据错误位置纠正数据(取反)*常见校验码:奇偶校验码、海明校验码;循环冗余校验码261、奇偶校验码*编码原理:采用1位校验位,使数据位及校验位中“1”的位数为奇数或偶数个*校验原理:检测校验码中“1”的个数变化,确定是否有错例1—数据101001001101001100011奇校验码101001000110100?1100011?偶校验码101001010110100?1100011?有奇校验/偶校验2种方法预先约定为奇数/偶数个*校验码编码:
(设数据信息为mnmn-1…m1)校验码组成—共n+1位,数据mn-1…m1校验位p1
异或与模2加—
XY=X+Y(mod2)校验位编码—奇校验:P=p1=mn+mn-1+…+m1+1(mod2)偶校验:P=p1=mn+mn-1+…+m1(mod2)27*校验方法:故障字S—S=P’P”,其中P’是接收的、P”是形成的检错—若S=0无错误,若S=1有错误;纠错—无此能力(∵无法获得错误位置)例2—接收的奇校验码故障字S错误位数(人工)发送码(参考)10100100001010010001101001??0110110101101100??0110110101101000??01101101*校验能力:只能检测奇数个错误,无纠错能力例3—下列接收的校验码①01001、②10100、③10011中,只有一个有奇数位错,请问发送时采用的是奇校验还是偶校验码?*应用:广泛应用于I/O传输的数据校验2528奇偶校验码的实现电路
奇校验偶校验译码电路+同左侧虚框内电路P(校验位)D7D6D5D4D3D2D1D0+++++++编码电路8位数据位p偶校验出错指示奇校验出错指示292、海明校验码*编码原理:将数据分成k个有重叠的组,每个组对应有一个奇偶校验位(共k个校验位)*校验原理:多重奇偶校验,即某位错误时导致多个校验位变化,从而实现检错与纠错(定位)*校验能力目标:能检测并纠正1位错误*校验方法:(能力目标→方法推导)设数据M=mn…m1,校验位P=pk…p1(即有k个奇偶检验组)校验码的编码规则?k的长度?故障字S—S=sk…s1,si=pi’pi”=pi’+
pi”(mod2)检错—若S=0无错误,S≠0有错误;纠错—S值表示错误位置(共有n+k种),该位信息取反2630*校验组个数k的确定:校验能力目标的要求—2k≥n+k+1,其中n+k为1位错误的种类n12~45~1112~2627~5758~120k(最小值)234567k的取值—*校验码编码规则:
(以4个校验组为例)故障字S值的约定—
(n+k+1种值)无错误:0000(→校验码位置序号从1开始编号)校验位错:0001(p1)、0010(p2)、0100(p3)、1000(p4)数据位错:S的其余码值(≥2个si位为“1”)信息在校验码中的排列规则—满足S值的约定位置序号151413121110987654321信息排列m11m10m9m8m7m6m5p4m4m3m2p3m1p2p131
信息加入的校验组—因S=sk…s1,si=pi’
pi”,故位置hk…h1上的信息应加入第i校验组(hi=1)位置及信息校验组151413121110987654321111111101101110010111010100110000111011001010100001100100001m11m10m9m8m7m6m5p4m4m3m2p3m1p2p1第4组√√√√√√√△第3组√√√√√√√△第2组√√√√√√√△第1组√√√√√√√△检验位的编码规则—
(以偶校验为例)p4=m11+m10+m9+m8+m7+m6+m5
(mod2)p3=m11+m10+m9+m8
+m4+m3+m2
(mod2)
p2=m11+m10
+m7+m6
+m4+m3
+m1
(mod2)p1=m11
+m9
+m7
+m5+m4+m2+m1(mod2)*应用:常应用于I/O传输、RAID存储等方面的校验2832
解:∵23<7+3+1、24>7+4+1∴校验位位数=4位;例5—求字符b的ASCII码(m7…m1=1100010)的海明偶校验码。例4—若采用海明校验码时,数据有16位,则校验位最少为多少位?
解:2k≥16+k+1,k最小为5位(16<21、32>22)。根据故障字约定,校验码排列m7m6m5p4m4m3m2p3m1p2p1故偶校验码=m7m6m5p4m4m3m2p3m1p2p1=1
1
0
0
0
0
1
1
0
0
0根据检验位编码规则,得(偶校验方式)p4=m7m6m5
=0p3=
m4m3m2
=1p2=m7m6
m4m3m1=0p1=m7
m5m4
m2m1=02933例6—续例5,请分析下列接收的海明偶校验码是否有错?错误时的位置?①11000011010、②11000001000、③11001001000
解:①接收的M’=1100010、P’=0110,可求得P”=0100,S=P’+P”(mod2),即无进位的模2加,得S=0010,∴有错误,位置2错误(p2位错),数据M=1100010
②接收的M’=1100000、P’=0100,可求得P”=0001,S=P’+P”(mod2),得S=0101,∴有错误,位置5错误(数据位m2错),数据M=1100010
③接收的M’=1101000、P’=0100,可求得P”=0110,S=P’+P”(mod2),得S=0010,∴有错误,p2错?m4及m2位错(M’=1101000)!*校验能力:能检测并纠正1位错误,最多只可发现2位错误!30343、循环冗余校验码—CRC(CyclicRedundancyCheck)码*基本概念:模2乘—与手工乘法类似,乘积各位求和采用模2加法;模2除—上商规则,部分余数的首位即为位商;
求余规则,按位模2减(即模2加)1010
×10110100000
1010_10001010110110000
101
010
000
100
10101……余数(比除数少1位)编码与多项式—可用多项式mn-1Xn-1+…+m1X+m0=M(X)来表示信息编码mn-1…m1m0,mi=0或1时称M(X)为二进制多项式;M(X)左移k位相当于M(X)·Xk。35*编码原理:CRC码由数据位M(X)及校验位R(X)拼接组成;而R(X)为M(X)左移k位后、模2除以k+1位生成多项式G(X)的余数;即[M(X)·Xk]/G(X)=Q(X)……R(X)(模2除)
CRC码=M(X)·Xk-R(X)=M(X)·Xk+R(X)(模2加减)数据位mn-1…m0校验位rk…r1例7—已知M(X)=1100,G(X)=X3+X+1,求其CRC码
解:G(X)=X3+X+1,即1011→校验位R(X)为3位M(X)·X3/G(X)=1100000/1011=1110……010
(模2除)CRC码=1100000+010=1100
010CRC码特点—模2除以G(X)时余数为零,即[M(X)·Xk+R(X)]/G(X)(模2除)={Q(X)G(X)+R(X)+R(X)}/G(X)(模2除)=[Q(X)G(X)]/G(X)=Q(X)……0(模2除)36*校验原理:--设接收的CRC码=M’(X)·Xk+R’(X)①用接收的CRC码模2除以G(X),求得余数R”(X);②若R”(X)=0,表示M’(X)正确;否则,R”(X)可表明出错位置循环码[与M’(X)无关]M’(X)串行移位不同值表示错误位置不同(不是错误位置)纠错成本低(避免了海明校验码的译码器电路)适用于串行设备28R”(X)具有的特性:第i位错误时为R”i(X),[R”i(X)·X]/G(X)=…R”i+1(X)第i+1位错误时为R”i+1(X),[R”i+1(X)·X]/G(X)=…R”i+2(X)第i+2位错误时为R”i+2(X),[R”i+2(X)·X]/G(X)=…R”i+3(X)
………………最低位有错时校正37例8—续例7,CRC码1位错误时的余数特性如下表:A1A2A3A4A5
A6
A7出错位置余数R”(X)R”(X)特性m’4…m’1r’3…r’11100010无0001100011A70011100000A6010
0010/1011=…0101100110A51000100/1011=…1001101010A40111000/1011=…0111110010A31100110/1011=…1101000010A21111100/1011=…1110100010A11011110/1011=…10138例9—续例8,CRC纠正1位错时的原理如下表:循环次数操作A1
A2
A3
A4
A5
A6
A7余数错误位置0CRC/G(X)1101010011A41M’(X)<<1、[R”(X)<<1]/G(X)101010*110A32M’(X)<<1、[R”(X)<<1]/G(X)01010**111A23M’(X)<<1、[R”(X)<<1]/G(X)1010***101A1纠错0010***000无39*对G(X)选择的要求:①发生校验能力范围内错误时,使R”(X)均不为零;②发生不同位置错误时,使R”(X)应该均不同;③连续作R”(X)补0并模2除时,使新R”(X)是循环变化的*常用的G(X):CRC-CCITT:G(X)=X16+X12+X5+1CRC-16:G(X)=X16+X15+X2+1CRC-12:G(X)=X12+X11+X3+X2+X+1CRC-32:G(X)=X32+X26+X23+X16+X12+X11+X10+X8+X7
+X5+X4+X2+X+1*校验能力:CRC码检测及纠正错误的能力随n及G(X)而不同;CRC码检错能力较强、纠错能力较弱。*应用:广泛应用于MEM传送、网络通信等方面。40§2.2数据的表示
计算机用编码表示数据:数据数值数据非数值数据逻辑数
字符(串)
--含汉字图形其它
--声音、图像等无符号数
--自然数有符号数
--整数、纯小数、实数等
计算机只支持最常用(最基本)的数据类型:数据表示—计算机硬件能够直接识别和引用的数据类型应用数据→数据表示的转换:程序员或编译程序完成程序员实际应用需要的数据类型计算机语言支持的数据类型计算机硬件支持的数据类型编译程序41一、数值数据的数据表示方法2、冯·诺依曼模型计算机的硬件特征①指令和数据用二进制表示,采用二进制运算;②二进制中只有0和1,无法表示符号和小数点;
③机器字长固定,CPU内部全部采用定长方式处理。1、数值数据的数学特征
①进制可有多种;②符号为“+”或“-”,可以没有符号;③小数点为“.”,可隐含表示,小数点位置可任意变化;④数码长度可任意变化;⑤不会产生运算溢出423、数值数据的表示方法*符号问题处理:
有符号数—用数字表示符号,
无符号数—符号位置为数值;*进制问题处理:只支持二进制方式;数据本身无法区分在指令级进行区分无符号数、整数纯小数实数隐含于最低位之后隐含于最高位之前纯小数尾数+整数指数定点格式浮点格式数据本身无法区分,在指令级进行区分*小数点问题处理:①点的表示—用隐含方式表示;②位置表示—约定不同数据类型的位置不同43*数码长度问题处理:①不同数据类型—数码长度固定;←便于定长方式处理②同一数据类型—可有几种长度;←可提高处理及存储效率*运算问题处理:①运算方法—按数据表示的格式及编码进行相应运算;
数值数据的处理方法:包括数据的表示和数据的操作方法表示格式(小数点表示)编码方式(符号及数值表示)数码长度(决定了数值范围)运算方式溢出处理数据的表示数据的操作数据处理定点与浮点表示机器数编码②数据类型区分—由指令操作码区分;③溢出处理—硬件检测并发出通知,由软件处理39系统结构决定组成逻辑实现44二、数的定点表示1、定点表示方法指约定数据中隐含的小数点位置固定不变。*定点数的表示范围:(设数码长度为n位)自然数(无符号)整数(有符号)纯小数Sn-1
Sn-2…S0
Sf
Sn-2…S0
Sf
S-1…S-(n-1)数值数符数值数符数值类型编码自然数(无符号)纯整数(有符号)纯小数原码0~2n-1(无符号编码)-(2n-1-1)~+(2n-1-1)-(1-2-(n-1))~+(1-2-(n-1))补码-2n-1~+(2n-1-1)-1~+(1-2-(n-1))*定点表示形式:有约定在数值最低位之后和最高位之前两种2、定点数的表示采用定点表示格式的数称为定点数,通常有几种数码长度。45三、数的浮点表示概念:尾数--±M,阶—±E,尾数的基—RM,阶的基—RE1、浮点表示方法指约定数据中隐含的小数点位置是可变的。表示—尾数用定点纯小数表示,阶用定点整数表示*浮点表示形式:由尾数和阶组成
格式—1SE
ESM
M阶符阶值数符尾数值1em或SE
EMSM
46*浮点数的表示范围与精度:
假设尾数及阶的基均为2,数值长度分别为m位及e位2、浮点数的表示采用浮点表示格式的数称为浮点数,通常有几种数码长度。下溢区正上溢区(+∞)负上溢区(-∞)负数区机器零绝对零N正min正数区N负maxN正maxN负min例1—若浮点表示格式中m=10、e=4,尾数及阶均为补码编码方式,写出(-54)10的机器码。解:(-54)10=(-110110)2=-0.11011×2+110,浮点数机器码为00110
10010100000影响因素—e决定了范围、m决定了精度47例2—若浮点表示格式中尾数为8位(含1位符号位)、阶为5位(含1位符号位),写出下列实数的浮点数及机器码。编码格式实数浮点数浮点数的表示阶尾数阶码尾数码原码原码+10101.11+0.1010111×2+1010010101010111-0.0010111-0.10111×2-10移码补码+0.0010111+0.10111×2-10-10101.11-0.1010111×2+101例3—浮点表示格式同例2,写出下列机器码的浮点数。编码格式浮点数的表示浮点数阶尾数阶码尾数码原码原码0110101010111+0.1010111×2+11011011011011010移码补码001010101110011101111010002010010
1101110001110
0101110010101
10101001-0.1011010×2-110+0.10111×2-1011-0.0011000×2+1101483、浮点数的规格化*目的:在现有的浮点数表示格式中,使表示精度最大化。例4—若浮点表示格式中m=3、e=3、尾数和阶均为原码编码方式,不同表示方法的浮点数精度不同:+101.1=0.1011×23=0.01011×24=0.001011×25001101010100001001010001*规格化数的要求:尾数真值的最高位为1,即
≤|M|<1*规格化的操作:左规—尾数左移一位,阶码减一;
右规—尾数右移一位,阶码加一。
应用—非规格化数→规格化数,可能需多次规格化操作4449例5—若浮点数尾数及阶的基均为2,回答下列问题:非规格化浮点数+1.0111×2+010-0.00010×2+010+1011.1×2+010规格化操作右规1次规格化浮点数+0.10111×2+011编码格式规格化数的机器码最大正数最小正数最大负数最小负数阶尾数阶尾数阶尾数阶尾数阶尾数原码原码01110111111111010000移码补码011111010000*规格化数的表示范围及数码特征:原码尾数—最高数值位为1;补码尾数—最高数值位与符号相反
←便于硬件实现-1.00…00真值补码100…00-0.11…11-0.10…01-0.10…00-0.01…11-0.00…01100…01101…11110…00110…01111…11…………左规3次-0.10000×2-001右规4次+0.10111×2+1101111
0000111111000001111111110000
1111101111
10000044504、IEEE754标准*表示格式及数码长度:有单精度、双精度两种格式及长度*编码方式:
①数制—M和E均采用二进制方式(即RM=RE=2);2381单精度浮点表示格式数符S阶E尾数M3252111双精度浮点表示格式数符S阶E尾数M64②码制—M为原码编码的定点纯小数(改进了定点位置),
E为移码编码的定点整数(改进了移码值)51*阶的码制:采用的是余127码和余1023码余X码—偏移值为X的移码称为余X码,标准移码:真值=E-28-1=E-128,余127码:真值=E-(28-1-1)=E-127;*尾数的码制:
(以单精度格式为例)支持非规格化尾数和规格化尾数两种方式;规格化尾数—规格化的尾数真值=±1.m-2…m-24,机器码M=m-2…m-24,尾数精度=24位阶的范围—1≤E≤254,而0和255另作他用,即-126≤阶的真值≤127非规格化尾数—尾数真值=±0.m-1…m-23,机器码M=m-1…m-23,尾数精度=23位;52*IEEE754标准浮点表示的特征:(以单精度格式为例)参数值真值N说明E=0,且M=0N=0机器零(下溢区)E=0,且M≠0N=(-1)S×2-126×0.M非规格化数1≤E≤254N=(-1)S×2E
-127×1.M规格化数E=255,且M≠0N=NaN为非数值E=255,且M=0N=(-1)S×∞±无穷大(上溢区)说明:①明确地表示了机器零及无穷大;②非规格化数减少了下溢区间大小(精度损失);③非数值用于表示异常(如0/0、负数开根等)正非规格化数区域机器零0.0+0.0…01×2-126+0.1…1×2-126+1.0…0×2-126正规格化数区域略+1.1…1×2+127下溢区正上溢区53例6—求IEEE
754单精度码为(CC968000)16的浮点数的真值N例5—求(-11/128)10的IEEE754单精度规格化数的机器码解—(-11/128)10
=(
-1011)2×2-7
=(-0.1011)2×2-3
=(-1.011)2×2-4=(-1.011)2×2123-127解—(CC968000)16=1
10011001
00101101000000000000000N为负数,浮点数为规格化数(∵1<10011001<254);数符阶尾数10111
10110110
0000
0000
0000
0000
000
机器码为:阶=(10011001)2-(01111111)2
=(00011010)2=(26)10尾数=(1.00101101)2
=(1.17578125)10∴N=(―1)1×1.17578125×226=-1.17578125×226
数值数据的表示小结:表示格式有定点和浮点两种,编码方式决定运算器的运算方法,数码长度总是固定的484154四、非数值数据的数据表示
提高MEM的存储效率:指令中地址效率—1个MEM地址应对应多个数据位;
MEM字长的特征:
MEM字长—均为2n位(n为常数);←便于数据长度的二进制运算MEM字长种类—有二进制位、机器字长、折中长度3类数据的存储效率—短数据占1个字长,长数据占多个字长0000H0001H…地址数据(1位)01…0000H0001H…0000100010001111…地址数据(8位)0000H0001H…00001000111100000000000010001111…地址数据(设字长为16位)通常不采用按位编址通常采用按折中长度(如字节)编址551、字符数据的表示指字符的交换码在存储/处理时的表示方式,即字符的内码。*数据的表示方法:表示格式—
数码长度—为MEM字长的倍数,即n=kW;m
Cm-1
Cm-2…C1
C0
Kx-1…
K0x扩展位字符交换码n例1—常见字符交换码的表示:字符字符数据的表示种类编码长度MEM按字节编址MEM按字(设=16)编址数码长度占地址数数码长度占地址数ASCII码78位=7+11个16位=7+91个Unicode码1616位=16+02个16位=16+01个GB2312-80码1416位=14+22个16位=14+21个编码方式—无符号的二进制编码56*扩展位编码:OS只支持一种字符集时—扩展位仅用于填满数据位;OS同时支持多种字符集时—扩展位常用于区分不同字符集如:MEM按字节编址时,ASCII码最高位编码为0;GB2312-80码各字节最高位编码位1*数据的运算及处理方法:
基本运算—关系运算(比较是否相同、判断前后次序);
字符串数据的表示:硬件—通常只支持字符数据的表示与运算;软件—将字符串转换为字符进行存储及处理。处理方法—可用减法运算+逻辑运算代替关系运算。结果为零?结果为负?需设置为硬件状态位用特殊字符作为字符串的结束符572、逻辑数据的表示*数学特征:值域—真、假;
运算—与(AND)、或(OR)、非(NOT)等*运算处理方法:可采用所有位同时按位进行与/或/非运算
可获得最大性能←┘└→一位操作时,软件负责准备数据*数据的表示方法:
数码长度—1位→n位(n为MEM字长倍数);←以提高存储效率表示格式—n个逻辑数据捆绑表示,每个逻辑数据占1位;bn-1b0
Ln-1
Ln-2…L1
L0例2—8位逻辑数A和B如何实现第0位的OR操作(结果在A中)?编码方式—各位独立编码,1/0可表示真/假解:步骤为①
C=BAND01H;②
A=AORC5358附:数据的表示小结
数据的表示方法:
有表示格式、编码方式、数码长度3个方面,而数码长度只与数据的实例有关、与数据的类型无关
数据的表示方法实例:表示方法数据类型表示格式编码方式运算方法数码长度数值数据自然数定点表示(无符号)无符号编码算术定长(可有几种)整数定点表示(有符号)某种机器码定长(可有几种)实数浮点表示尾数及阶独立编码,两种机器码浮点定长(可有几种)非数值数据字符定点表示(无符号)无符号编码关系定长(字符集定)逻辑数逻辑表示(捆绑)独立编码,二进制码串逻辑定长(可有几种)59
MEM字长的确定思路:(系统结构研究的内容)
MEM字长=min{使用频率很高的各种数据的数码长度}通常,MEM字长=字节(1B=8bit,ASCII码字符的使用频率很高)
机器字长的确定思路:(系统结构研究的内容)
机器字长=max{使用频率很高的各种定点数的数码长度}
数据的表示实现:⑴编译程序将语言数据类型转换成机器数据的表示形式;⑵指令操作码
指明机器数据的表示类型;⑶运算器必须具有相应功能处理不同类型的机器数据!60§2.3定点数运算方法一、移位运算1、移位及移位运算*移位:数值相对于某个位置的移动例—20.0m=2000.0cm,称20相对于小数点左移了2位*移位操作:有左移、右移2种类型;二进制数左移或右移n位相当于乘以或除以2n*移位运算:对计算机中机器数的移位操作运算种类—对有符号数,有算术左移、算术右移;对无符号数,有逻辑左移、逻辑右移①符号数字化②新编码方法运算参数—操作数、移动位数612、逻辑移位运算*操作数类型:无符号机器数例1—某REG内容为00111001,逻辑移位运算结果如下:*运算规则:
机器数整体移位,移出的数丢弃,出现的空位补0逻辑左移2位丢弃部分逻辑右移2位丢弃部分0011100100111001000000*运算实现方法:通常用移位寄存器实现练习—若(REG)=11001001,逻辑左移1位再右移1位的结果?0逻辑左移运算移位寄存器0逻辑右移运算移位寄存器*溢出判断方法:左移、移丢数码为1时运算溢出623、算术移位运算*操作数类型:有符号机器数(原码、补码、反码等)例3真值原码补码反码真值原码补码反码+2000100001000010-2100101111011101算术左移1位+4-4算术右移1位+1-1*运算规则:符号位不变,数值部分整体移位,空位添补规则如下表(根据编码方式的数学特征添补)码制真值算术移位运算规则符号位数值左移空位添补规则数值右移空位添补规则原码正/负数保持不变空位补0补码正/负数末位数值位补0首位数值位补符号位反码正数末位数值位补0首位数值位补符号位负数末位数值位补1补码特性—[2X]补=2[X]补及[X]补=XS*2n-1+[X]补
00100
00100
0010000001000010000110100100011110011111110111111063*运算实现方法:通常用移位寄存器实现(b)补码(a)原码(c)正数反码(d)负数反码00001例4原/补/反码原码补码反码00100001(+33)10100001(-33)11011111(-33)11011110(-33)①左移1位再左移1位②右移1位再右移4位再右移1位*溢出判断方法:左移移丢数值1时溢出右移移丢数值1仅影响精度
原码左移、移丢数码为1时溢出;
补码/反码左移、移丢与符号相反的数码时溢出01000010(+66)00000100(+4)00010000(+16)00000001(+1)00000000(+0)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- pie工程师考试试题及答案
- 矿山开采工程承包与矿产资源开采利用合同
- 优化青少年体育发展体系的创新思路
- 采石场股份买卖与矿山资源开发合作协议
- 无人区矿产资源采矿权出让及开发合同模板
- 企业财务预算编制与绩效评价合同
- Java全栈工程师面试题及答案
- 数据库中的容灾备份机制试题及答案
- 领导者 企业的战略选择与行为约束研究试题及答案
- 互联网金融服务平台在金融科技竞争中的差异化战略
- 央企华润集团杭州片区年度品牌传播策略案
- HG-T 4823-2023 电池用硫酸锰
- 2023年四川省绵阳市中考英语试卷真题(含答案)
- 材料的断裂(1)
- 被子植物门分科检索表
- 监理预验收表格(共11页)
- 中国电信移动终端营销策略
- 学校考试A3试卷模板(共6页)
- 百胜餐饮HIC高效能的辅导
- 《就在今生》班迪达尊者着果儒钟苑文共译简体
- 皇家宠物食品有限公司的营销策略分
评论
0/150
提交评论