2025年计算机组成原理第2章_第1页
2025年计算机组成原理第2章_第2页
2025年计算机组成原理第2章_第3页
2025年计算机组成原理第2章_第4页
2025年计算机组成原理第2章_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第二章数据的表示和运算2§2.1数据的编码一、数制及其转换1、进位记数制*进位记数制:又称进制或数制,是用一组固定的符号和统一的规则来表示数值的方法。参数有数码、基数和位权*常用的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、二、八、十六进制数相互转换

*数位长度关系:1个八进制、十六进制数位=3

bit、4

bit*转换规则:从小数点向两边分别转换,

数位不够时补零、无效的零删除

例4—(13.724)8=(001

011.111

010

100)2=(1011.1110101)2

(10011.01)2=(010

011.010)2=(23.2)8

例5—(2B.E)16=(0010

1011.1110)2=(101011.111)2

(11001.11)2=(0001

1001.1100)2=(19.C)16

练习2—(21.75)10=(X)2=(Y)8=(Z)16,X=?Y=?Z=?(2D.E)16=(A)2=(B)8=(C)10,A=?B=?C=?6二、机器数及其编码*数值数据:组成—[符号+]数值[+小数点+数值]

运算—符号与数值分开运算,减法先比较大小*机器数:计算机内部编码表示的数值数据如(+101)2→(0101)2、(-101)2→(1101)2

真值—数学上带+/-号的数值数据*机器数的编码方法:运算方法分析—①采用手工运算方法,硬件实现困难☆②采用新运算方法,以利于硬件实现

编码方法—原码、补码、反码、移码等,

均用二进制表示←硬件仅0/1两个状态符号/数值一起运算减法不比较大小新的编码方法[]表示可缺省71、原码(Sign-magnitude)表示法*基本思想:机器数最高位表示真值的符号(0/1表示+/-),

其余位为真值的绝对值*整数原码定义:

设X=±xn-2…x0,则[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

若[+Y]原=0000,则[-Y]原=1000

※[+0]原≠[-0]原

练习1—若X=-01000,则[X]原=?若[Y]原=101010,则Y=?符号位数值位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]原②运算方法—符号与数值分开运算(与手工运算一致)

└→适合于乘除法,加减法较复杂编码时0可省略92、补码(Two’scomplement)表示法

*编码目标:符号与数值一起运算,减法无需比较大小*有模运算:运算只计量小于“模”的部分,多余部分被丢弃模—计量系统的计数范围(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≡8(mod12)

②减法时,减数用其取负后编码表示、进行加法运算示例—9-4≡5(mod12),4-9≡7(mod12)(2)补码定义*基本思想:机器数最高位表示X的符号(0/1表示+/-),

其余位为|X|或|X|的补数*整数补码定义:

设X=±xn-2…x0,则模为2n,[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-1=1”,模须为2n(不是2n-1)11

练习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的补码惟一※补码表示数的个数比原码多1个

例6—[+0001]补=00001,[-0001]补=10

0000+(-0001)=11111[+1111]补=01111,[-1111]补=10

0000+(-1111)=1000125

最高位为112*小数补码定义:

设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.010110

说明—模为2(不是1)为实现“负数的x’0=1”*符号与数值一起运算的原理分析:仅考虑不溢出情况

0100(+4)1111(-1)0101(+5)1011(-5)

+0011(+3)

+1100(-4)

+1100(-4)

+0100(+4)

00111(+7)11011(-5)10001(+1)01111(-1)

结果正确—同号加符号不变,异号加符号同绝对值较大者13②设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-

xn-2…x0+

xn-2…x0

+1=

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

1011符号位(最高位)不变符号位(最高位)不变16*[X]补与[-X]补的关系:

设[X]补=xn-1xn-2…x0,则

当X≥0时,X

=

[X]补,其中xn-1=0,

[-X]补

=

1xn-2…x0

+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=?

当X<0时,[X]补

=

2n

-|X|,其中xn-1=1,

[-X]补

=|X|=

2n

-[X]补=11…1-[X]补+1

=

xn-1xn-2…x0

+117

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、反码(Ones’complement)表示法

*编码目标:作为原码与补码相互转换时的一种过渡编码*整数反码定义:设X=±xn-2…x0,取模=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),模=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.0010*反码与补码关系:若X为正数,[X]补=[X]反;

若X为负数,[X]补=[X]反+11911

原码、补码、反码比较:

①机器数的最高位均为符号位(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]原数值位各位求反移码

00…0000…0101…1110…0010…0111…11204、移码表示法

*编码目标:数(含符号及数值)连续时,编码连续*整数移码定义:

设X=±xn-2…x0,取模=2n、偏移量=2n-1,则

[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码(BinaryCodedDecimal):又称二-十进制编码,是指用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

码点数量,Unicode可变长242、字符串编码*字符串特性:

①由多个字符构成②所含字符数不固定*字符串编码方法:①由各个字符编码组成②通过特定编码标志字符串的结束,结束编码放在最后

└→字符集必须包含该字符(如ASCII码中编码为0的字符)

例—字符串“am”的ASCII编码为110000111011010000000

作业一:P78~79—2~725*冗余校验思想:①用待发数据(M)形成校验位(P),M与P一起传送②用接收数据(M’)形成新校验位(P”),用P’及P”检错/纠错五、校验码存储器或传输线路M函数fP输出方比较器P”P’纠正器M函数fM’输入方状态*术语:校验码—由数据和校验位组成的信息编码检错(检验)—检查数据在传送过程中有/无错误纠错(校正)—根据错误位置纠正数据(取反)*常见校验码:奇偶校验码、海明校验码,循环冗余校验码261、奇偶校验码*编码原理:采用1位校验位,使校验码中

“1”的位数为奇数或偶数个*校验原理:检测校验码中

“1”的个数特性,确定是否有错

例1—数据101001001101001100011奇校验码101001000110100?1100011?偶校验码101001010110100?1100011?有奇校验/偶校验方法预先约定为奇数/偶数个*校验码编码:

(设数据信息为mnmn-1…m1)

校验码组成—共n+1位,数据mnmn-1…m1校验位p1

异或与模2加—

ab=a+b(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?10110110101101100?10110110101101000?201101101*校验能力:只能检测奇数个错误,无纠错能力

例3—下列接收的校验码①01001、②10100、③10011中,只有一个有奇数个错,发送时采用的是奇校验还是偶校验码?*应用:广泛应用于I/O传输的数据校验25282、海明校验码*编码原理:将数据分成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种),该位信息取反26校验码常称为单纠错码SEC29*校验位位数k的确定:校验能力目标要求—2k-1≥n+k,其中n+k表示1位错误种类n12~45~1112~2627~5758~120k(最小值)234567k的取值—*校验码编码规则:

(以4个校验组为例)

故障字S值的约定—S≠0时表示错误位置,S值有n+k+1种无错误:0000(→校验码位置序号从1开始编号)

校验位错:0001(p1)、0010(p2)、0100(p3)、1000(p4)

数据位错:S的其余码值(≥2个si=1)

校验码的组成规则—按“S值=错误位置”规则排列信息位置序号151413121110987654321信息排列m11m10m9m8m7m6m5p4m4m3m2p3m1p2p1校验位次重要,1个si=130位置及信息校验组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存储等方面的校验28

信息位加入校验组规则—信息位的位置hk…h1中,hi=1时就加入第i校验组该信息位错误时si=131

解:∵23-1<7+3、24-1>7+4∴校验位位数=4位;

例5—求字符b的ASCII码(m7…m1=1100010)的海明偶校验码。

例4—若数据有16位,则海明校验码的校验位最少为多少位?

解:2k-1≥16+k,k最小为5位(24-1<20、25-1>21)。

根据故障字约定,校验码排列m7m6m5p4m4m3m2p3m1p2p1

故偶校验码=m7m6m5p4m4m3m2p3m1p2p1=1

1

0

0

0

0

1

1

0

0

0

根据检验位编码规则,得(偶校验方式)

p4=m7m6m5

=0p3=

m4m3m2

=1p2=m7m6

m4m3m1=0p1=m7

m5m4

m2m1=02932

例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)!*校验能力:SEC能检测并纠正1位错,最多只可发现2位错!30333、循环冗余校验码—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)·Xk34*编码原理: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…m1校验位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除)35*校验原理:--设接收的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),第i+1位错误时为R”i+1(X),有[

R”i(X)·X]/G(X)=…R”i+1(X)第i+2位错误时为R”i+2(X),有[R”i+1(X)·X]/G(X)=…R”i+2(X)

……

…………最低位有错时校正36

例8—续例7,CRC码1位错误时的余数特性如下表:A1A2A3A4A5

A6

A7出错位置余数R”(X)R”(X)特性m’4…m’1r’3…r’11100010无0001100011A70011100000A6010

0010/1011=…0101100110A5100

0100/1011=…1001101010A40111000/1011=…0111110010A31100110/1011=…1101000010A21111100/1011=…1110100010A11011110/1011=…101循环次数操作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***101A1M’(X)最高位纠错、M’(X)<<10010***000无

例9—续例8,CRC纠正1位错时的原理如下表:(共循环4次)3437*对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传送、网络通信等方面38§2.2数据的表示

计算机用编码表示数据:数据数值数据非数值数据逻辑数

字符(串)

--含汉字图形其它

--声音、图像等无符号数

--自然数有符号数

--整数、纯小数、实数等

计算机只支持最常用(最基本)的数据类型:

数据类型—一个值的集合、在这个值集上的一组操作

数据表示—计算机硬件能够直接识别和引用的数据类型类型转换—程序员及编译程序完成应用→表示的变换程序员应用需要的数据类型编程语言支持的数据类型硬件支持的数据类型编译程序如整数39一、数值数据的表示方法2、冯·诺依曼计算机的硬件特征

①采用二进制表示指令和数据,采用二进制运算②二进制中只有0和1,无法显式表示符号和小数点

③机器字长固定,CPU采用定长方式处理1、数值数据的数学特征

①进制可有多种②符号为“+”或“-”,符号可以缺省③小数点为“.”

,位置可任意变化,点可隐含表示④数码长度可任意变化

⑤运算不会产生溢出运算会产生溢出!40*进制问题处理:*符号问题处理:有符号数—

无符号数—*小数点问题处理:

①点的表示—②位置表示—*编码格式选择:*数码长度问题处理:①同一数据类型—

②同一操作集数据—3、数值数据的表示方法支持二进制,可支持二-十进制符号用数字表示,符号位置为数值适于数据通常存储、I/O时用隐含方式表示约定不同数据类型采用不同格式自然数、整数纯小数实数隐含于最低位之后隐含于最高位之前纯小数尾数+整数指数定点格式

浮点格式便于硬件实现运算的某种编码值集+操作集只有一种长度(固定)

←定长处理常有几种长度(数据类型)←如整数41*运算问题处理:

①运算类型—指令操作码指明运算类型及数据表示(类型)

数值数据的处理方法:含数据的表示和数据的操作方法

②运算方法—按数据表示(格式/编码/长度)实现相应运算③溢出处理—硬件检测/发出通知,软件是否/如何处理39MEM中信息无法表明类型定点与浮点表示机器数编码方法表示格式(小数点表示)编码方式(符号及数值表示)数码长度(数值范围表示)数据的表示数据的操作数据处理运算方式溢出处理系统结构确定组成逻辑实现42二、数的定点表示1、定点表示方法指约定数据中隐含的小数点位置固定不变*定点数的表示范围:

(设数码长度为n位)类型编码自然数(无符号)整数(有符号)纯小数(有符号)原码-(2n-1-1)~+(2n-1-1)-(1-2-(n-1))~+(1-2-(n-1))补码

-2n-1~+(2n-1-1)-1~+(1-2-(n-1))无符号编码0~2n-1*定点表示格式:2、定点数的表示

无符号整数有符号整数纯小数Sn-1

Sn-2

S0Sf

Sn-2

S0Sf

S-1…S-(n-1)数值数符数值数符数值用于表示字符(char,BYTE)43

*硬件支持的定点数表示:无符号整数--无符号编码方式、m种长度←m种数据表示有符号整数—某种编码方式、m种长度←m种数据表示补码概率≈100%默认为补码方式

示例1—C语言中的6种整数类型:short[int]unsignedshort[int]

intunsignedintlong[int]unsignedlong[int]※说明:纯小数通常表示为浮点数

←减少硬件成本

示例2—IA32支持的6种定点数表示:

8/16/32bit、无符号编码的定点整数,

8/16/32bit、补码编码的定点整数44三、数的浮点表示1、浮点表示方法指约定数据中隐含的小数点位置是可变的

表示—尾数用定点纯小数表示,阶用定点纯整数表示*浮点表示格式:由定点格式的尾数和阶组成

格式—1SE

ESM

M阶符阶值数符尾数值1em或SE

EMSM

概念:尾数--±M,阶(指数)—±E,尾数的基—RM,阶的基—RE45*浮点数的表示范围与精度:

假设尾数及阶的基RM=RE=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,

浮点数机器码为0011010010100000

影响因素—e决定范围、m决定精度46

例2—若浮点表示格式中尾数为8位(含1位符号位)、阶为5位(含1位符号位),写出下列实数的浮点数或机器码编码格式实数浮点数浮点数的表示阶尾数阶码尾数码原码原码+10101.11+0.1010111×2+1010010101010111-0.0010111-0.1011100×2-10+0.1010111×2+110101101010101111011011011010移码补码+0.0010111+0.1011100×2-10-10101.11-0.1010111×2+101001010101110011101111010002010010

1101110001110

0101110010101

10101001-0.1011010×2-110+0.1011100×2-1011-0.0011000×2+1101

*硬件支持的浮点数表示:实数(及纯小数)—IEEE754标准,有2种浮点格式

示例—C语言中的2种浮点数类型:float,double473、浮点数的规格化*目的:对给定的浮点表示格式,使浮点数的表示精度最大

例3—若浮点表示格式中m=3、e=3、尾数和阶均为原码编码方式,不同表示方法的浮点数精度不同:

+111.1=0.1111×23=0.01111×24=0.001111×25*规格化数的要求:尾数真值的最高位为1,即

≤|M|<1*规格化的操作:左规—尾数左移一位,阶码减一

右规—尾数右移一位,阶码加一

应用—非规格化数→规格化数,可能需多次规格化操作45001101110100001101010001表示的值111.0110.0100.048

例4—若浮点数尾数及阶的基均为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

10000045494、IEEE754标准*表示格式(及数码长度):有单精度、双精度两种格式(长度分别为32位及64位)*编码方式:

①数制—M和E均采用二进制方式(即RM=RE=2)2381单精度浮点表示格式数符S阶E尾数M3252111双精度浮点表示格式数符S阶E尾数M64②码制—M为原码编码的定点纯小数(改进了定点位置),

E为移码编码的定点整数(改进了偏移值)50*阶的码制:采用余127码和余1023码余X码—偏移值为X的移码标准移码:真值=E-28-1=E-128

←可称余128码余127码:真值=E-(28-1-1)=E-127*尾数的码制:

(以单精度格式为例)

支持非规格化尾数、规格化尾数两种方式

规格化尾数—尾数真值=±1.m-2…m-24,

M表示=m-2…m-24,尾数精度=24位

阶的范围—1≤E≤254表示规格化数,-126≤阶≤+127

E=0和255另作他用(如表示非规格化数)

非规格化尾数—尾数真值=±0.m-1…m-23,

M表示=m-1…m-23,尾数精度≤23位阶<-126扩展0.1m-2…m-2351*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下溢区正上溢区52

例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

数值数据的表示:表示格式、编码方式、数码长度

(定点/浮点)

(某种)(几种)494153四、非数值数据的数据表示

MEM的访问/存储效率:

数据访问效率—指令中1个MEM地址应对应多个数据位

存储单元长度(MEM字长)的特征:

MEM字长取值—为2n位(n为常数)←便于数据长度运算(二进制)MEM字长方案—有二进制位、机器字长、折中长度3种

数据存储效率—短数据占1个单元,长数据占多个单元0000H0001H…地址数据(1位)01…0000H0001H…0000100010001111…地址数据(8位)0000H0001H…00001000111100000000000010001111…地址数据(设int为16位)通常MEM字长=折中长度(如字节)541、字符数据的表示指字符的交换码在存储/处理时的编码方式,即字符的内码*数据的表示方法:表示格式—

数码长度—n=kW,W为MEM字长,k受限于字符集大小m

Cm-1

Cm-2…C1

C0

Kp-1…

K0p扩展位字符交换码n

例1—常见字符交换码的表示:(假设MEM按字节编址)字符集种类交换码长度内码长度占地址数ASCII码78位=7+11个Unicode码1616位=16+02个GB2312-80码1416位=14+22个

编码方式—无符号编码(二进制)*扩展位的作用:用于填满数据位、或区分不同字符集55*数据的运算及处理方法:

基本运算—关系运算(如A=B、A≥B等,结果为真/假)

字符串数据的表示:硬件—通常只支持字符数据的表示与运算软件—将字符串转换为字符进行存储及处理└→字符数组+特殊字符(字符串结束符)

处理方法—可用减法运算+逻辑运算代替关系运算关系运算A≥BA≤BA>BA<BA=B实现减法运算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论