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

下载本文档

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

文档简介

计算机组成原理

数值型数据:可用来表示数量的多少,可比较其大小,具有特定值的一类数据。

非数值型数据:主要指字符数据、逻辑数据等。在一些专用处理器上指令集可对多媒体信息进行处理,此时图形、声音和活动图象数据看成非数值型数据。

信息:根据ISO定义,可以通俗认为,信息是对人有用的数据,这些数据可能影响到人们的行为和决策。

计算机信息处理,简言之由计算机进行数据处理,处理主要目标是获取有用信息。即通过数据采集和输入、有效地把数据组织到计算机中,由计算机系统对数据进行相应的处理加工(如存储、建库、转换、合并、分类、计算统计、汇总、传送等操作),最后提供有用的信息给用户。媒体—承载信息的载体。根据ITU下属CCITT的定义,与计算机信息处理有关的媒体有5种:第2页,共119页,2024年2月25日,星期天⑴感觉媒体⑵表示媒体⑶存储媒体⑷表现媒体:⑸传输媒体:通信载体数字计算机内部所处理的所有数字都是“数字化编码”了的数据,即都是一种表示媒体信息。第3页,共119页,2024年2月25日,星期天

“数字化编码”过程:指对感觉媒体信息进行定时采样,将现实世界中的连续信息转换成计算机中的离散的“样本”信息。然后对这些离散的“样本”信息用“0”或“1”这两个基本符号进行数字化编码,即对样本值进行二进制编码。

编码:就是用少量简单的基本符号,对大量复杂多样的信息进行一定规律的组合。

基本符号和组合规则是一切信息编码的两大要素。

计算机内部采用二进制表示的原因有以下三个原因:⑴二进制只有两种基本状态,与两个稳定状态的物理器件的状况相符,易实现。⑵二进制的编码、计数和运算规则简单易行。⑶“0”和“1”两个符号正好与逻辑命题的两个逻辑值“假”和“真”相对应,为计算机应用于逻辑判断提供了方便。

计算机内部处理的对象分为两大类:数值型数据和非数值型数据。数值数据的编码表示

输入到计算机内部的数据若有确定的值,即在数轴上能找到其对应的点,则称为数值数据。第4页,共119页,2024年2月25日,星期天

计算机内部的数值数据的表示方法有两大类:直接用二进制数表示或采用二进制编码的十进制(BCD码—BinaryCodedDecimalNumber)表示。2.1进位计数制与数制之间的转换

进位计数制—用少量的符号(也称数码),按先后次序把它们排列成序列,由低到高进行计数,计满进位。

基数—计数制中所用到的数字符号个数。

位权(权数)—以基数为底的指数,指数的幂是数位的序号。一般而言,在任一个进位计数制中,若具有0,1,…,R-1共R个数字字符,则称该数字系统为R进制数字系统,其基数为R,采用的是“逢R进一”的运算规则,第i位上的位权为Ri。其位权展开式如下:=xn-1

Rn-1+

xn-2

Rn-2+

…+

x1

R1+

x0

R0+x-1

R-1+

x-2

R-2+

+

x-m

R-m(2-1)第5页,共119页,2024年2月25日,星期天

一般地,一个十进制数D=dn-1dn-2…d1d0.d-1d-2…

d-m

其对应值为:

V(D)10=dn-210n-2

+dn-110n-1+…+

d1101+d0100+d-110-1+d-210-2+

+

d-m

10-m

其中di(i=n-1,…,1,0,-1,-2,…,-m)可是0~9十个数字符号中任何一个,故基数为“10”。10i为第i位上的位权。在十进制数进行运算时,每位计满十之后要向高位进一。

例:十进制数2059.65代表的实际值用位权展开为V(2059.65)10=2103+0102+5101+9100+610-1+510-2

同理,二进制数的基数是2,只有两个数字符号“0”和“1”,采用“逢二进一”的规则。

例:二进制数(100101.01)2的实际值(100101.01)2=125+024+023+122+021+

020+02-1+12-2

一般地,一个二进制数B=bn-1

bn-2…b1b0.b-1b-2…

b-m第6页,共119页,2024年2月25日,星期天

其对应值为:

V(B)2=bn-1

2n-1+bn-2

2n-2+…+b121+b020+b-12-1+b-22-2+…+b-m

2-m

其中bi(i=n-1,n-2,…,1,0,-1,-2,…,-m)可是0或1两个数字之一。

例2.1计算机系统中常用的进位计数制有:

二进制数:基数为2,各位数字的取值范围是0~l,计数规则是“逢二进一”,后缀为B。如(10100011.1101)2=10100011.1101B。

八进制数:基数为8,各位数字的取值范围是0~7,计数规则是“逢八进一”,后缀为O或Q。如(137.67)8=137.67Q。

十进制数:基数为10,各位数字的取值范围是O~9,计数规则是“逢十进一”,后缀为D或不用后缀。如(2357.89)10=2357.89或(2357.89)10=2357.89D。

十六进制数:基数为16,基本符号0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。计数规则是“逢十六进一”,后缀为H,如(A9BF.36E)16=A9BF.36EH。第7页,共119页,2024年2月25日,星期天四种进位计数制之间的关系见下表。F15171111E14161110D13151101C12141100B11131011A10121010991110018810100077701116660110555010144401003330011222001011100010000000十六进制十进制八进制二进制四种进位计数制之间对应关系表第8页,共119页,2024年2月25日,星期天

在进行不同进制数的转换时,应注意以下几个方面的问题:

1)不同进制数的基数不同,所使用的数字的取值范围也不同。

2)将任意进制数转换为十进制数的方法是“按权相加”,即利用按权展开多项式将系数xi与位权值相乘后,将乘积逐项求和。

例(100101.01)2=(125+024+023+122+021+120+02-1+12-2)10=(37.25)10

例(307.4)8=(382+081+780+48-1)10=(199.5)10

例(4A.2)16=(416+10160+416-1)10=(74.125)10

3)将十进制数转换为任意进制数时,整数部分与小数部分需分别进行转换。整数部分的转换方法是“除以基取余”,小数部分的转换方法是“乘以基取整”。第9页,共119页,2024年2月25日,星期天

(1)利用除以基取余法将十进制整数转换为R进制整数的规则:①把被转换的十进制整数除以基数R,所得余数即为R进制整数的最低位数字。②将前次计算所得到的商再除以基数R,所得余数即为R进制整数的相应位数字。③重复步骤②,直到商为0为止。

(2)利用乘以基取整法将十进制小数转换为R进制小数的规则:①把被转换的十进制小数乘以基数R,所得乘积的整数部分即为R进制小数的最高位数字。②将前次计算所得到的乘积的小数部分再乘以基数R,所得新的乘积的整数部分即为R进制小数的相应位数字。③重复步骤②,直到乘积的小数部分为0或求得所要求的位数为止。

4)因为23=8,24=16,所以二进制数与八进制数、十六进制数之间的转换可以利用它们之间的对应关系直接进行转换。第10页,共119页,2024年2月25日,星期天

(1)将二进制数转换为八进制数的方法:①将二进制数的整数部分从最低有效位开始,每三位二进制数对应一位八进制数,不足三位,高位补0。②将二进制数的小数部分从最高有效位开始,每三位二进制数对应一位八进制数,不足三位,低位补0。

(2)将二进制数转换为十六进制数的方法:①将二进制数的整数部分从最低有效位开始,每四位二进制数对应一位十六进制数,不足四位,高位补0。②将二进制数的小数部分从最高有效位开始,每四位二进制数对应一位十六进制数,不足四位,低位补0。

例2.2将二进制数110011.101转换为十进制数。

解:利用按权展开多项式,采用“按权相加”的方法进行转换。

(110011.101)2=25+24+21+20+2-1+2-3

=32+16+2+1+0.5+0.125=(51.625)10

第11页,共119页,2024年2月25日,星期天8104……………0

例2.3将(10101.0110101)2转换为八进制数和十六进制数。

解:①根据二进制数转换为八进制数的方法可得

(10101.0110101)2=(010101.011010100)2=(25.324)8

②根据二进制数转换为十六进制数的方法可得

(10101.0110101)2=(00010101.01101010)2=(15.6A)8

例2.4①将十进制数834转换成八进制数余数低位8834……………281……………1813……………50高位

所以(834)10=(1502)8

②将十进制数834转换成二进制数第12页,共119页,2024年2月25日,星期天0高位2834

………………02417

………………12208

………………02104

………………0252………………0226………………0213………………026………………023………………121………………1

所以,所以(835)10=(1101000010)2余数低位第13页,共119页,2024年2月25日,星期天

1

………1.50

2

0

………0.75

2

1………

1.375

2

例①将(0.6875)10转换为二进制数。高位整数位0.6875

2

1

………1.0

低位故(0.6875)10=(0.1011)2第14页,共119页,2024年2月25日,星期天

②将(0.6875)10转换为八进制数。

高位

整数位

低位

故(0.6875)10=(0.54)8

注意:由于计算机的位数限制,或者被转换的十进制实数不一定表达成

2-i的形式,其转换的结果,一般为近似值。

例:将(0.15)10转换为二进制数,设计算机系统为8位二进制,则小数为7位,转换过程如下:0.6875

8

5………5.5

8

4………4.0

第15页,共119页,2024年2月25日,星期天0.15

2

0…………0.30

20…………0.60

2

0…………0.40

2

高位整数位

1…………1.20

2

0…………0.80

2

1…………1.20

1…………1.60

2

低位故(0.15)10≈(0.0010011)2第16页,共119页,2024年2月25日,星期天2.2带符号数的表示2.2.1机器数与真值采用二进制表示形式的连同数符一起代码化了的数据,在计算机中统称为机器数或机器码。

真值-用正、负符号加绝对值来表示的实际数值。

机器数可分为无符号数和带符号数两种。

无符号数-是指计算机字长的所有二进制位均表示数值。

带符号数-是指机器数分为符号和数值部分,且均用二进制代码表示。

例2.5设某机器的字长为8位,无符号整数在机器中的表示形式为:

70数据带符号整数在机器中的表示形式为:70S数据第17页,共119页,2024年2月25日,星期天

分别写出机器数10011001作为无符号整数和带符号整数对应的真值。

解:10011001作为无符号整数时,对应的真值是(10011001)2=(153)10

10011001作为有符号整数时,其最高位的数码1代表符号“-”,所以与机器数10011001对应的真值是(-0011001)2=(-25)10

综上所述,可得机器数的特点为:

(1)数的符号采用二进制代码化,0代表“+”,1代表“-”。通常将符号的代码放在数据的最高位。

(2)小数点本身是隐含的,不占用存储空间。

(3)每个机器数数据所占的二进制位数受机器硬件规模的限制,与机器字长有关。超过机器字长的数值要舍去。第18页,共119页,2024年2月25日,星期天

例如,如果要将数x=+0.101100111在字长为8位的机器中表示为一个单字长的数,则只能表示为01011001,最低位的两个1无法在机器中表示。因为机器数的长度是由机器硬件规模规定的,所以机器数表示的数值是不连续的。

例如8位二进制无符号数可以表示256个整数:00000000~11111111可表示0~127;

8位二进制带符号数中:

00000000~01111111可表示正整数0~127,

11111111~10000000可表示负数-127~0,共256个数,其中00000000表示+0,10000000表示-0。

2.2.2原码表示

编码系统

确定一个数值数据的三要素是:进位计数制、定点/浮点表示和编码表示。它们分别用来解决数值数据的基本符号、小数点位置和数的正负号。第19页,共119页,2024年2月25日,星期天

设n+1位机器数X的数字化编码后的机器数X表示为:xnxn-1…x1x0。其中xi为0或1。

机器数X的第一位xn为数的符号,它的取值与真值XT有关。大多数情况下,取值0表示该数为正,取值1表示该数为负。机器数X中除了xn之外的后n位:xn-1…x1x0是数值部分,各位取值与编码有关,各位取值规定如下:

⑴当XT>0时,xi=xi

(X为定点整数),或xi=xi-n

(X为定点小数)

⑵当XT≤0时,数值部分各位取值依赖于相应的编码方式,常用的编码方式有原码、补码和反码三种。

⒈原码表示法

原码表示法也称“数值-符号”表示法。符号用“0”表示“+”,“1”表示“-”。

⑴设有定点小数

0.x1x2

xn

,其原码用n+1位字长表示形式为xs.x1x2

xn,其中xs为符号位。那么,原码的定义如下:第20页,共119页,2024年2月25日,星期天⑵设有定点整数

xnxn-1

x0

,其原码用n+1位字长表示形式为xs,xn-1xn-2

x0,其中xs为符号位。那么,原码的定义如下:

例2.6已知x,求x的原码[x]原。①x=+0.1010110②x=-0.1010110③x=+1010110④x=+1010110

解:根据原码的定义,可得①[x]原=x=0.1010110②[x]原=1-x=1+|x|=1+0.1010110=1.1010110③[x]原=x=01010110

④[x]原=2n-x=2n+|x|=10000000+01010110=11010110第21页,共119页,2024年2月25日,星期天

由例2.6的结果可知:

(1)[x]原的表示形式x0.x1x2

xn为符号位加上x的绝对值。

当x≥0时,符号位x0=0;当x≤0时,符号位x0=1。

(2)当x为纯小数时,[X]原中的小数点默认在符号位x0和数值最高位x1之间;

当x≥0时,[x]原=x;

当x≤0时,

[x]原=l+|x|,即符号位加上x的小数部分的绝对值。

当x为纯整数时,[x]原中的小数点默认在数值最低位xn之后;当x≥0时,[x]原=x;

当x≤0时,[x]原=2n-x=2n+|x|,其中2n是符号位的权值,2n+|x|相当于使符号为l。

(3)将[x]原的符号取反,即可得到[-x]原。

2.原码中0的表示

纯小数+0和-0的原码表示:

[+0]原=0.00…0[-0]原=1.00…0第22页,共119页,2024年2月25日,星期天

纯整数+0和-0的原码表示:

[+0]原=000…0[-0]原=100…0

3.原码的左移和右移对于二进制纯小数x=0.x1x2

xn

求2x时,只需将0.x1x2

xn依次左移一位,最低位的空位填0即可,即2x=x1.x2

xn0。当然,为了保证x左移后仍然是纯小数,0.x1x2

xn中的x1应为0,否则2x就会大于1,而不是纯小数了。只需将x1x2…xn依次右移一位,移出的最高位的空位填0即可

原码的移位规则是:符号位不变,数值部分左移或右移,移出的空位填0。

例2.7已知[x]原,求[2x]原、[x/2]原。

第23页,共119页,2024年2月25日,星期天①[x]原=0.0101001②[x]原=10011010

解:①[2x]原=0.1010010

左移后,符号位保持不变,最高位移出,最低位填0。

[x/2]原=1.0010100右移后,符号位保持不变,最高位填0,末尾的1移出。②[2x]原=10110100[x/2]原=10001101

在原码的左移过程中,注意不要将高位的有效数值位移出,否则将会出错(称为上溢)。

4.原码的特点

(1)原码表示直观、易懂,与真值的转换容易。

(2)原码表示中0有两种不同的表示形式,给使用带来了不便。

(3)原码表示法的缺点:原码表示的加减运算复杂。

第24页,共119页,2024年2月25日,星期天2.2.3补码表示补码表示法也称“符号-2”表示法。也就是补码表示的机器数由符号后跟上真值的模2补码构成。

⒈模运算①剩下的低n位不能正确反映运算结果,也即舍弃的高位是运算的一部分,意味着计算结果超出了计算机所能表示的范围,我们称之为“溢出”。②剩下的n位数能正确表示运算结果,也即舍弃的高位是并不影响运算结果。

对于一个多于n位的数丢弃高位而保留低n位数的过程,实际上是等价于将这个多于n位的数去除以2,然后丢去商保留余数,这种操作运算就是模运算。

在模运算中,若A,B,M满足下列关系:A=B+K

M(K为整数)

则记为A≡B(modM)

上式表示A和B分别除以M后所得余数相同。称B和A关于模M同余。也就是说,一个数与除以一个模M后所得的余数是等价的。第25页,共119页,2024年2月25日,星期天

例:时钟系统的模数是12。设现在时间是6点,而表停在10点上,则有两种校正方法:①10-4=6②10+8=18=10+(12-4)≡6

(mod12)

所以在模12系统中:10-4≡10+8

(mod12),即

-4≡8

(mod12)

称8是-4对模12的补码。同理称9是-3对模12的补码。…

由上例可得如下结论:对于一个确定的模,某数减去小于模的一个数,总可以用该数加上模与减数的绝对值之差来代替,即用该数加上另一数对于模的补码来代替。对于任意x,在模M的条件下的补数[x]补,可由式(2-4)给出:

[x]补=m+x(modM)(2-4)

例时钟系统

10-4≡10+(12-4)≡10+8≡6

(mod12)

第26页,共119页,2024年2月25日,星期天

例4位十进制计数器

9828-1928≡9828+(104-1928)≡9828+8072

≡7900

(mod104)

根据式(2-4)可知:

(1)当x≥0时,m+x大于M,把M丢掉,得[x]补=x,即正数的补数等于其本身。

(2)当x<0时,[x]补=m+x=M-|x|,即负数的补数等于模与该数绝对值之差。

例2.8求模M=2时,二进制数x的补数。

①x=+0.10110101②x=-0.10110101

解:

①因为x≥0,把模2丢掉,所以[x]补=2+x=0.10110101(mod2)②因为x<0,所以[x]补=2+x=2-|x|=10.00000000-0.10110101=1.01001011(mod2)

2.补码的定义

设补码的位数为n+1位(其中符号占1位),数值部分为n位。则补码定义如下:第27页,共119页,2024年2月25日,星期天

①设有定点小数

0.x1x2

xn

,其补码用n+1位字长表示形式为xs.x1x2

xn

,其中xs为符号位。那么,其补码的定义如下:

②设有定点整数

xnxn-1

x0

,其原码用n+1位字长表示形式为xs,xn-1xn-2

x0,其中xs为符号位。那么,补码的定义如下:

例2.9已知x,求x的补码[x]补

①x=+0.1010110②x=-0.1010110③x=+1010110④x=-1010110

解:根据补码的定义,可得

①[x]补=x=0.1010110②[x]补=2+x=10.0000000+(-0.1010110

)=1.0101010

③[x]补=x=01010110④[x]补=27+x=10000000+(-1010110

)=1010101049第28页,共119页,2024年2月25日,星期天

3.特殊数的补码表示

(1)真值0的补码表示

根据补码的定义可知,真值0的补码表示是惟一的,即:

[+0]补=[-0]补=2±0.00….0=0.00…0(纯小数)[+0]补=[-0]补=2n+1±000…0=000…0(纯整数)(2)-1和-2n的补码表示在纯小数补码表示中,[-1]补=2+(-1.00….0)=1.00…0在纯整数补码表示中,[-2n]补=100….0

+(-100….0)=100…0

n+1个0n个0n个0

4.补码的简便求法给定一个二进制数x,如果需要求其补码,可以直接根据定义求得。但当x<0时,根据定义需要做减法运算,不太方便,因此可采用以下简便方法:

(1)若x≥0,则[x]补=x,并使符号位为0。

(2)若x<0,符号固定为1,数值部分的各位取反,末位加1。即得[x]补第29页,共119页,2024年2月25日,星期天

例2.10证明补码的简便求法。

证:设x为纯小数,根据式(2-5)的定义,有当x=+0.x1x2

xn

时,[x]补=0.x1x2

xn

,这时符号位x0=0,表示x≥0;当=-0.x1x2

xn时,[x]补=2+x=2-0.x1x2

xn=1.11…1+0.00…1-0.x1x2

xn=1.11…1-0.x1x2

xn+0.00…1所以当x<0时,将x的各位取反,再在最低位上加1,即可求得x的补码[x]补。

还有一种简单的方法求负数x的补码:

x<0,符号位固定为1,从右往左查其原码,遇到第1个时,其右各位0和该位1照写,该位1之左各位取反即可。

例2.11用简便方法求出例2.9中x的补码。

①x=+0.1010110,∵x≥0,∴[x]补=0.1010110②x=-0.1010110,∵x<0,∴[x]补=1.0101010

③x=+1010110,∵x≥0,∴[x]补=01010110④x=-1010110,∵x<0,∴[x]补=10101010

第30页,共119页,2024年2月25日,星期天

例已知[x]补=10100110,求x。

解:∵

x0=1,表明x<0,可用下面两种方法求x真值。

①将x的各位取反,再在最低位上加1,即可求得

[x]补的真值xx=-(1011001+1)=-1011010

②符号位为1,则真值符号取“-”,数值位从右往左遇到第1个时,其右各位0和该位1照写,该位1之左各位取反即可。x=-1011010表2-1n=3位时所有整数的补码真值补码真值补码+111(+7)0111-001(-1)1111+110(+6)0110-010(-2)1110+101(+5)0101-011(-3)1101+100(+4)0100-100(-4)1100+011(+3)0011-101(-5)1011+010(+2)0010-110(-6)1010+001(+1)0001-111(-7)1001+000(+0)0000-1000(-8)1000第31页,共119页,2024年2月25日,星期天图2-1补码的几何性质

补码的几何性质说明了以下两点:

(1)正数的补码表示就是其本身,负数的补码表示的实质是把负数映像到正值区域,因此加上一个负数或减去一个正数可以用加上另一个数(负数或减数对应的补码)来代替。(2)从补码表示的符号看,补码中符号位的值代表了数的正确符号,0表示正数,1表示负数;而从映像值来看,符号位的值是映像值的一个数位,因此在补码运算中,符号位可以与数值位一起参加运算。第32页,共119页,2024年2月25日,星期天

6.补码的几个关系⑴补码与原码的转换关系①若x≥0,则[x]原=[x]补。②若x<0,则将[x]原除符号位以外的各位取反后(即符号位不变),再在最低位上加1,即可得到[x]补;反之,将[x]补除符号位以外的各位取反后,再在最低位上加1,即可得到[x]原。

例2.12将下列x的原码表示转换为补码表示。①[x]原=0.1010110②[x]原=1.1010110③[x]原=01010110④[x]原=11010110

解:根据原码与补码的转换原则,得

①[x]原=0.1010110,∵x≥0∴[x]补=0.1010110

②[x]原=1.1010110,∵x<0∴[x]补=1.0101010③[x]原=01010110,∵x≥0∴[x]补=01010110④[x]原=11010110

,∵x<0∴[x]补=10101010

例2.13将下列x的补码表示转换为原码表示,并求出对应的真值。①[x]补=1.10110②[x]补=1.11101第33页,共119页,2024年2月25日,星期天

解:①∵[x]补=1.10110∴[x]原=1.01010,x=-0.01010②∵[x]补=1.11101∴[x]原=1.00011,x=-0.00011⑵补码与机器负数的关系

由[x]补求[-x]补规则是:连符号位一起取反,末位加1。证明如下:设[x]补=1.0100110,求[-x]补

[x]原=1.1011010

x

=-0.1011010

则-x

=+0.1011010

所以[-x]补=0.1011010

例2.14已知[x]补,求[-x]补。①[x]补=01001101②[x]补=10110010。解:根据对[X]补求补的规则,得①∵[x]补=01001101,∴[-x]补=10110011②∵[x]补=10110010,∴[-x]补=01001110第34页,共119页,2024年2月25日,星期天⑶补码的左移和右移例:由[x]补求[x/2]补。设[x]补=x0.x1x2

xn

当x0=0时,即x值为正,[x]补=0.x1x2

xn=

即x=1.x1x2

xn-2=-1+0.x1x2

xn=-1+

故x=-x0+

当x0=1时,即x值为负,[x]补=1.x1x2

xn=2+x

写成补码形式,即得:

[x/2]补=x0.x0x1x2

xn第35页,共119页,2024年2月25日,星期天

由此可见,[x/2]补是[x]补连同符号一起右移1位,依此类推求[2-ix]补,则[x]补连同符号一起右移i位即可。

根据二进制数的移位规则和补码的定义,可知补码的移位规则:

①补码的左移:符号位不变,数值部分左移,最低位移出的空位填0。

②补码的右移:符号位不变,数值部分右移,最高位移出的空位填补与符号位相同的代码。

例2.15已知[x]补,求[2x]补,[x/2]补

①[x]补=0.0101001

②[x]补=11011010

解:①∵[x]补=0.0101001,∴[2x]补=0.1010010

左移后,符号位保持不变,数值最高位移出,最低位填0。

[x/2]补=0.0010100

右移后,符号位保持不变,数值最高位填与符号位相同的0,末尾的1移出。第36页,共119页,2024年2月25日,星期天②∵[x]补=1

1011010,

∴[2x]补=10110100

左移后,符号位保持不变,数值最高位移出,最低位填0。

[x/2]补=11101101

右移后,符号位保持不变,数值最高位填与符号位相同的1,末尾的0移出。☆设[X]补=1.0100110,则

[X/2]补=1.1010011,[X/4]补=1.1101001,…。

7.补码的特点

(1)在补码表示中,用符号位x0表示数值的正负,形式与原码表示相同,即0为正;l为负。但补码的符号可以看做是数值的一部分参加运算。

(2)在补码表示中,数值0只有一种表示方法,即00…0。

(3)负数补码的表示范围比负数原码的表示范围略宽。纯小数的补码可以表示到-l,纯整数的补码可以表示到-2n。第37页,共119页,2024年2月25日,星期天2.2.4反码表示反码表示也是一种机器数,它实质上是一种特殊的补码,其特殊之处在于反码的模比补码的模小一个最低位上的1。

1.反码的定义根据补码的定义可以推出反码的定义如式(2-7)和式(2-8)所示。

①设有定点小数

0.x1x2

xn

,其反码用n+1位字长表示形式为x0.x1x2

xn

,其中x0为符号位。那么,其反码的定义如下:

②设有定点整数

xnxn-1

x0

,其反码用n+1位字长表示形式为xn,xn-1xn-2

x0,其中xn为符号位。那么,反码的定义如下:其中,n为数值位的长度。第38页,共119页,2024年2月25日,星期天

根据反码的定义可得反码表示的求法:

(1)若x≥0,则使符号位为0,数值部分与x相同,即可得到[x]反。

(2)若x≤0,则使符号位为1,x的数值部分各位取反,即可得到[x]反。

例2.16已知x

,求[x]反。①x=+0.0101001②x=+1011010③x=-0.0101001④x=-1011010

解:根据反码的定义,可得

①[x]反=0.0101001②[x]反=01011010

③[x]反=1.1010110④[x]反=10100101

设[x]反=x0.x1x2

xn,根据反码表示和原码表示的特点,可以得到反码与原码的关系:

(1)若x≥0,即x0=0,则[x]反=[x]原=

x0.x1x2

xn

。(2)若x≤0,即x0=1,则[x]反=

,即保持[x]原的符号不变,将[x]原的其他位取反,就可得到[x]反。第39页,共119页,2024年2月25日,星期天

例2.17已知[x]原和[x]补,求[x]反。①[x]原=0.0101001②[x]原=11011010③[x]补=0.0101001④[x]补=11011010

解:

①∵[x]原=0.0101001,∴x>0,[x]反=[x]原=0.0101001②∵[x]原=11011010,∴x<0,保持[x]原的符号不变,将[x]原的其他位取反,得[x]反=10100101

③∵[x]补=0.0101001,∴x>0,[x]反=[x]原=[x]补=0.0101001④∵[x]补=11011010,∴x<0,根据[x]原与[x]补的关系,得[x]原=

10100110,再根据[x]反与[x]原的关系,得[x]反=11011001。

2.反码的特点

(1)在反码表示中,用符号位x0表示数值的正负,形式与原码表示相同,即0为正;1为负。

(2)在反码表示中,数值0有两种表示方法:第40页,共119页,2024年2月25日,星期天

纯小数的+0和-0的反码表示:

[+0]反=0.00…0[-0]反=1.11…1

纯整数的+0和-0的反码表示:

[+0]反=000…0[-0]反=111…1(3)反码的表示范围与原码的表示范围相同。注意,纯小数的反码不能表示-1,纯整数的反码不能表示-2n。

(4)反码表示在计算机中往往作为数码变换的中间环节。☆注:⑴反码又称基数减1补码。即一个数的反码的各位数字由基数R减去1后再减去该数的对应位而成。

从定义看,反码也就是以(Rn

-R-m)为模的补码。m为小数部分位数。若R=2,则对于n位定点整数(即m=0),此时模为2n-1。对于m位定点小数(即n=1),此时模为2-2-m。二进制数1010的反码=(24-1)-1010=1111-1010=0101。它又称为1-补码(1的补码)。对于十进制系统的3725反码=(104-1)-3725=9999-3725=6274。又称9的补码。第41页,共119页,2024年2月25日,星期天⑵反码运算是以(Rn

-R-m)为模的条件下进行的。所以Rn-R-m≡0(modRn

-R-m)

Rn

≡R-m(modRn

-R-m)

这意味着若运算中产生了Rn(即最高进位),就必须把它加到末位上去,这叫“循环进位”。例:用反码运算来计算9828.45-1928.45

9828.45-1928.45=9828.45+(104-102-1928.45)=9828.45+(9999.99-1928.45)=9828.45+8071.549828.45

+8071.5417899.99

17900.00第42页,共119页,2024年2月25日,星期天★★三种码制的比较主要区别如下:⑴对于正数,三种码制均等于真值本身,正号用0表示。而负数各有不同的表示。⑵最高位均表示符号,补、反码的符号位可看作数值一部分,各数值一起参与运算;原码符号位则和数值部分别对待,不能参与运算。⑶对于真值0,原、反码各有两种表示形式,补码的0的表示是唯一的。⑷原、反码表示的正负数范围相对于0而言是对称的,对于n+1位的二进制数来说,原码和反码表示的范围是:定点整数

(2n-1)

定点小数

(1-2-n)

补码表示正负数范围相对于0是不对称的,其负数表示范围比正数表示范围宽,能多表示一个最小的负数(即绝对值最大的负数)。定点整数-2n~(2n-1)

定点小数-1~1-2-n

定点整数是其最小值等于-2n,定点小数的最小的数为-1。第43页,共119页,2024年2月25日,星期天⑸各种编码采用不同的方法进行移位处理。对于带符号的定点数,应采用算术移位方法(即对数值部分进行移位,符号位不动)。

各种编码的数值部分的移位规则如下:

①原码左移:高位移出,末位补0。若移出非0时,发生溢出。右移:低位移出,高位补0。移出时要进行四舍五入。

②补码左移:高位移出,末位补0。若移出位与符号位不同时,发生溢出。右移:低位移出,高位用符号补足。移出时要进行四舍五入。

③反码左移:高位移出,末位补符。若移出位与符号位不同时,发生溢出。右移:低位移出,高位补符。移出时要进行四舍五入。

例已知[X]补=1.0100110,假定补码为8位,求[x/2]补,[x/4],[2x]补。第44页,共119页,2024年2月25日,星期天[x/2]补=1.10100110=1.1010011[x/4]补=1.11010011=1.1101010(四舍五入)

[2x]补=1.1001100移出的最高位为0与符号位1不同,故产生溢出。

⑹不同的编码在扩展时采用不同的方法进行填充处理。对于定点小数的扩展,是在低位进行填充处理;定点整数的扩展,是在高位进行填充处理。①原码定点小数:在原数的末位补足0。定点整数:符号不变,在原数符号位后补足0。

②补码定点小数:在原数的末位补足0。定点整数:符号不变,在原数符号位后用数符补足所需的位数。2.2.5移码表示

1.移码的定义移码的定义如式(2-9)和式(2-10)所示。第45页,共119页,2024年2月25日,星期天

纯小数移码的定义:

[x]移=1+x

-1≤x<1(2-9)

纯整数移码的定义:

[x]移=2n+x

-2n≤x<2n(2-10)

下面以,n=3时纯整数的移码为例,看一下移码的几何性质。为[x]移=23+x,如表2-2所示。表2-2n=3位时所有整数的补码真值移码真值移码+111(+7)1111-001(-1)0111+110(+6)1110-010(-2)0110+101(+5)1101-011(-3)0101+100(+4)1100-100(-4)0100+011(+3)1011-101(-5)0011+010(+2)1010-110(-6)0010+001(+1)1001-111(-7)0001+000(+0)1000-1000(-8)0000第46页,共119页,2024年2月25日,星期天图2-2移码的几何性质第47页,共119页,2024年2月25日,星期天

2.移码与补码的关系根据式(2-6)给出的纯整数的补码定义可知:

(1)当0≤x<2n时,[x]补=x,因为[x]移=2n+x,所以[x]移=2n+[x]补。

(2)当-2n≤x<0时,[x]补=2n+1+x,∵[x]移=2n+x,∴[x]移=2n+[x]补-2n+1

其中,n为数值部分的长度。

例2.18已知x,求[x]补和[x]移。①x=+1011010②x=-1011010

解:①∵x>0,∴[x]补=01011010,

[x]移=2n+x=2n+1011010=11011010②∵x<0,∴[x]补=10100110,

[x]移=2n+x=2n+(-1011010)=00100110

3.移码的特点

(1)设[x]移=x0.x1x2

xn

,符号位x0表示真值x的正负。

x0=1,x为正;x0=0,x为负。第48页,共119页,2024年2月25日,星期天(2)真值0的移码表示只有一种形式:[+0]移=[-0]移=100…0。

(3)移码与补码的表示范围相同。

纯小数的移码可以表示到-1,

[-1]移=0.00…0;

纯整数的移码可以表示到-2n

,n为数值部分的长度,

[-2n]移=00…0。

(4)真值大时,对应的移码也大;真值小时,对应的移码也小。综上所述,各种码制之间的关系以及转换方法如图2-3所示。若真值x为正,使符号位x0=0;若真值为负,x0=1,数值部分不变,就得到x对应的原码。

真值x为正数时,[x]原=[x]反=[x]补。

当真值x为负时,x对应的原码、补码、反码表示各不相同。保持原码符号位不变,数值位各位取反即得反码;反码末位加1即得补码。不论真值x是正数还是负数,将其对应的补码的符号位取反,数值位不变,即可得到x对应的移码。各种码制之间关系与转换方法见下图第49页,共119页,2024年2月25日,星期天表2-3相同的机器数在不同表示形式中对应的十进制真值255+127-0-1-12711111111173+45-82-83-451010110173-55+73+73+7301001001无符号数移码反码补码原码表示方法机器数

例2.19设某计算机的字长为8位,采用纯整数表示。表2-3中给出了相同的机器数在不同表示形式中对应的十进制真值。第50页,共119页,2024年2月25日,星期天无符号数值的大小01┆127128129┆255真值(十进制)真值(十进制)[x]补[x]移-128-10000000100000000

0000000-127-011111111000000100000001┇┇┇┇-1-00000001111111110

11111110000000000

0000000100000001000000010

000000110000001┇┇┇┇127011111110

11111111

1111111

真值与补码、移码和无符号数对应关系见下表第51页,共119页,2024年2月25日,星期天2.3数的定点表示与浮点表示例如:

(N)10=123.456=123456

10-3=0.123456

103

。同理,同一个二进制数也可以表示成不同的形式,例如

(N)2=1101.0011=11010011

2-3=0.11010011

2+3。由此可见,任何一个R进制数N均可以写成式(2-11)所示的形式:

(N)R=±S×R±e(2-11)

其中,S:尾数,代表数N的有效数字;

R:基值,由计算机系统的设计人员约定,不同的机器,R的取值不同。计算机中常用的R的取值为2、4、8、16;

e:阶码,代表数N的小数点的实际位置。根据小数点的位置是否固定,计算机采用两种不同的数据格式,即定点表示和浮点。2.3.1定点表示

⑴定点小数

假想小数点

温馨提示

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

评论

0/150

提交评论