硬件第2章计算机运算基础.ppt

上传人:wuy****n92 文档编号:88385431 上传时间:2023-04-25 格式:PPT 页数:56 大小:693.50KB
返回 下载 相关 举报
硬件第2章计算机运算基础.ppt_第1页
第1页 / 共56页
硬件第2章计算机运算基础.ppt_第2页
第2页 / 共56页
点击查看更多>>
资源描述

《硬件第2章计算机运算基础.ppt》由会员分享,可在线阅读,更多相关《硬件第2章计算机运算基础.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机硬件技术基础主讲:1第第2章章 计算机运算基础计算机运算基础 通过本章学习,应该掌握以下内容:通过本章学习,应该掌握以下内容:n带符号数的编码带符号数的编码n定点数据表示定点数据表示 n浮点数据表示浮点数据表示n补码的加减运算及溢出判断补码的加减运算及溢出判断 n移位运算移位运算 2目目 录录n2.1 带符号数的编码带符号数的编码n2.2 定点数据表示定点数据表示 n2.3 浮点数据表示浮点数据表示n2.4 补码的加减运算及溢出判断补码的加减运算及溢出判断 n2.5 移位运算移位运算 32.1带符号数的编码带符号数的编码在计算机中使用的连同符号一起数码化的数叫机器码,不同的机器码采用不同

2、的编码规律。用“+”、“-”号加上数的绝对值表示的数称为真值。n2.1.1 原码 原码的编码规律可概括为:正数的符号位用原码的编码规律可概括为:正数的符号位用0表示,负数的符号位用表示,负数的符号位用1表示,数位部分则表示,数位部分则和真值的数位部分完全一样。和真值的数位部分完全一样。4n例2-1 已知X=1101,Y=-1011,字长n=5,求X和Y的原码。解:X原=01101,Y原=11011n例2-2 已知X=0.1001,Y=-0.1010,字长n=5,求X和Y的原码。解:X原=0.1001,Y原=1.1010 原码表示简单直观,与真值转换容易,但符号位不能参加运算。在计算机中用原码实

3、现算术运算时,要取绝对值参加运算,符号位单独处理,这对乘除法运算是很容易实现的,但对加减运算是非常不方便的。5n2.1.2 补码n1补码表示的引出 补码具有符号位可以参加运算和化减为加的特点,是计算机中使用最多的一种机器码。n2补码的定义对模为M的补码,其统一定义为:X补=M+X (MOD M)X补=2n+X X补=2+X 正数的补码是其本身,但要用0表示正号;负数的补码是用模加上这个负数,即减去这个负数的绝对值。6n3.负数补码的求法 补码的编码规律是正数的符号位用0表示,负数的符号位用1表示。但对数位部分则是正数同真值一样,负数要将真值的各位按位变反,末位加1。n例2-3 已知X=1001

4、,Y=-1001,字长n=5,求X和Y的补码。解:X补=01001,Y补=10111例2-4 已知X=0.1010,Y=-0.1011,字长n=5,求X和Y的补码。解:X补=0.1010,Y补=1.0101 7n4 由补码求真值 从正数的补码求真值,不必计算,可以直接写出;从负数的补码求真值,和从真值求负数的补码方法一样,可将补码的各数位按位变反,末位加,然后加上数符“-”。这一结论对定点整数也是同样适用的。n例2-5 已知X补=01101,Y补=10110,求X和Y的真值。解:X=1101,Y=-1010n例2-6 已知X补=0.1011 Y补=1.1101,求X和Y的真值。解:X=0.10

5、11,Y=-0.00118n2.1.3 反码反码的编码规律可概括为:正数的符号位用0表示,负数的符号位用1表示,数位部分则是正数同真值一样,负数要将真值的各位按位变反。n例2-7 已知:X=1111,Y=-1010,字长n=5,求X和Y的反码。解:X反=01111 Y反=10101n例2-8 已知:X=0.1011,Y=-0.1001,字长n=5,求X和Y的反码。解:X反=0.1011 Y反=1.0110由于负数的反码加就是负数的补码,所以,反码在计算机中常用做求补码的中介。9n2.1.4 移码当字长为n位时,移码表示的定义为:X移=2 n-1+X (MOD 2 n-1)移码的编码规律是:正数

6、的符号位用1表示,数位部分同真值一样;负数的符号位用0表示,数位部分变反加1。移码还有一个非常有用的特点,即编码大的移码,对应的真值也大,这个特点可用来比较两个移码表示的数的大小。n例2-9 已知X=1001,Y=-1101,字长n=5,求X和Y的移码。解:X移=11001,Y移=0001110n2.1.5 四种机器码的比较n 对于正数,原码、补码、反码的表示形式一样;对于负数,原码、补码、反码的表示形式不一样;移码表示和补码表示仅符号位相反,数值位编码完全相同。n 几种机器码的最高位都是符号位,原码、补码、反码用0表示正数、1表示负数,而移码用1表示正数、0表示负数。n 根据定义,原码和反码

7、各有两种0的表示形式,而补码和移码表示0有唯一的形式。11n在字长n位的整数表示中,几种机器码的0有如下的表示形式:+0原=0000(n个0)-0 原=1000(n-1个0)+0反=0000(n个0)-0 反=1111(n个1)+0补=-0补=0000 (n个0)+0移=-0移=1000 (n-1个0)12n 原码和反码表示的数的范围是相对于0对称的,表示的范围也相同。而补码和移码表示的数的范围相同,但相对于0是不对称的,表示的范围和原码、反码也不同。这是由于当字长为n位时,它们都可以有2n个编码,但原码和反码表示0用了两个编码,而补码和移码表示0只用了一个编码。于是,同样字长的编码,补码和移

8、码可以多表示一个负数,这个负数在原码和反码中是不能表示的。表2-1给出了字长n=4时,二进制整数真值和原码、反码、补码、移码的对应关系。13二进制整数原 码反 码补 码移 码+00000000000000001000+00010001000100011001+00100010001000101010+00110011001100111011+01000100010001001100+01010101010101011101+01100110011001101110+01110111011101111111-00001000111100001000-00011001111011110111-00

9、101010110111100110-00111011110011010101-01001100101111000100-01011101101010110011-01101110100110100010-01111111100010010001-100010000000表2-1 二进制整数真值和原码、反码、补码、移码的对应关系142.2 定点数据表示定点数据表示n数据表示是指计算机硬件可以识别的数据类型,常用的数值型数据表示分为定点数据表示和浮点数据表示两大类。定点数是小数点位置固定的数,也是计算机中最简单、最基本的一种数据表示。根据小数点固定的位置不同,又可分成定点整数、定点小数和无符号数

10、。15n2.2.1 定点整数表示定点整数表示是将小数点位置固定在最低有效数位后面的定点数。定点整数是纯整数,对字长n位的机器,定点整数表示的格式如图2-1所示。16n当机器的字长为n时(包括一位符号位),定点整数表示的范围对原码和反码是:-(2n-1-1)2n-1-1n对补码和移码来说,表示范围是:-2n-12n-1-1例如,当字长n=16时,原码和反码的表示范围是:-(215-1)215-1而补码和移码的表示范围是:-215215-117 表2-2 字长8位的定点整数能表示的4个典型值机 器 码最小负数最大非0负数最小非0正数最大正数原码111111111000000100000001011

11、11111反码10000000111111100000000101111111补码10000000111111110000000101111111移码0000000001111111100000011111111118n例2-10 设机器字长n=16,最高位为符号位,写出X=11011011的原码、反码、补码和移码的定点整数表示。解:正数的原码、反码、补码的定点整数表示形式是完全一样的,它们在机器中的表示形式为:X原=X补=X反=0000000011011011移码在计算机中的表示形式为:X移 19n例2-11 设机器字长n=16,最高位为符号位,写出X=-11011011的原码、反码、补码和

12、移码的定点整数表示。解:X原 X反 X补 X移 20n2.2.2 定点小数表示定点小数表示是将小数点固定在最高有效数位和符号位之间的定点数。定点小数是纯小数,对字长n位的定点小数表示格式如图2-2所示。21n当字长为n时(包括一位符号位),原码和反码的表示范围是:-(1-2-(n-1)1-2-(n-1)n对补码来说,表示范围是:-11-2-(n-1)n例如,字长n=16时,对原码和反码来说,表示范围是:-(1-2-15)1-2-15n对补码来说,表示范围是:-11-2-1522n例2-12 设机器字长n=16,最高位是符号位,写出X=0.11011101的原码、反码、补码的定点小数表示。解:正

13、数的原码、反码、补码的定点小数表示形式是相同的,它们在机器中的表示形式为:X原=X补=X反 n例2-13 设机器字长n=16,最高位是符号位,写出X=-0.11011101的原码、反码、补码的定点小数表示。解:X原 X反 X补 23n2.2.3 无符号数表示n无符号数是一种不设符号位的正整数。在无符号数表示中,由于符号位可以省略,所有的位都用来表示数值,小数点仍然规定在最低数位的后面,隐含表示。对字长为n的无符号数,其表示范围是:0到2 n-1。n在计算机中,无符号数也是经常使用的,主存单元的地址编码就是采用无符号数表示的,如地址码为32位,主存单元的最小地址编码是:00000000H,最大地

14、址编码是0FFFFFFFFH。针对无符号数的运算,计算机还设置有专门的指令。24n在定点数表示中,当要表示的数比最大的数还大或比最小的数还小时,称为上溢,计算机要做相应的溢出处理;当要表示的数比最大非0负数还大,同时比最小非0正数还小时,称为下溢,计算机将其作为0处理。n为了满足不同用户对数的表示范围和精度的要求,许多计算机采用了多种字长的定点数表示,如有的计算机就采用了8位、16位、32位、64 位四种定点数表示形式,可满足不同应用的要求。252.3 浮点数据表示 n浮点数是小数点位置不固定的数,对应高级语言中的实型数。n此外,在科学计算和工程设计中,常常会遇到非常大或非常小的数。如太阳的质

15、量是21030kg,电子的质量是910-31kg,太阳的质量大约是电子质量的2.221060倍。如此巨大的数,在定点数表示中是很难实现的。为此,在计算机中引入了浮点数据表示。在有浮点数表示的计算机中,编译程序可以直接将实型数转换成浮点数,既简化了软件的设计,又提高了计算机的工作效率。26n2.3.1 浮点数据表示的格式和特点阶符阶码数符尾数 N=0.111100012-0101其中,0.11110001将转换成尾数,-0101将转换成阶码,基数2则是隐含表示。在字长n=16,阶符、数符各占1位,阶码占6位,尾数占8位的浮点数格式中,浮点数N在机器中的表示形式为(阶码和尾数采用补码表示):N补=

16、1111011,0.11110001其中,逗号和小数点是为了阅读方便加上的,在实际机器中并不存在。27n例2-14 设浮点数的阶码和尾数均采用补码表示,且位数分别为5位和11位(均含1位符号位)。将数X=-2729/32用浮点数格式表示。解:(1)将X转换成二进制代码:X=(-2729/32)10=(-27(292-5)10 =(-21110.11101)2(2)按指定的浮点数格式表示:X补=00111,1.000110000028 阶码E采用定点整数表示,尾数M一般采用定点小数表示,这同科学计数法中的规定是有一定差别的。浮点数的正负取决于尾数的正负,所以数符也叫尾符。阶码的符号和阶码的绝对值

17、共同决定小数点的位置,阶码为正时,绝对值越大,浮点数的绝对值越大;阶码为负时,绝对值越大,浮点数的绝对值越小。浮点数尾数的基数R在机器中不用硬件表示,是机器本身规定的。大部分机器取R=2,也有的机器取R=8 或 R=16。浮点数的表示范围主要取决于阶码的位数及基数,精度主要取决于尾数的位数。29n2.3.2 浮点数的表示范围和规格化n1.浮点数的表示范围 对阶码位数为m位(包含1位符号位)、尾数位数为n位(包含1位符号位)的浮点数,如尾数的基数为2,阶码和尾数都采用补码表示,则能表示的最小负数是:(-1)能表示的最大正数是:(1-2-(n-1)30n2浮点数表示的规格化如果一个浮点数不是规格化

18、的,则要进行规格化处理。对基数为2的浮点数,当尾数的绝对值小于0.5时,需要进行左规格化(简称左规)处理。左规时尾数每左移一位,扩大2倍,阶码减1,保持浮点数真值不变,直到尾数的绝对值大于等于0.5为止。当尾数的绝对值大于1时,需要进行右规格化(简称右规)处理。右规时可将尾数右移,每右移一位,尾数缩小为1/2,阶码加1,保持浮点数真值不变,右规一般只进行一次就可满足规格化要求。31n例2-15 浮点数采用补码表示,阶码位数为4位(包含1位符号位),尾数位数为6位(包含1位符号位),将浮点数0101,1.11011和1101,0.00010 规格化。解:浮点数0101,1.11011左规后(尾数

19、左移2位,阶码减2)为:0011,1.01100。浮点数1101,0.00010左规后(尾数左移3位,阶码减3)为:1010,0.10000。32n2.3.3 IEEE 754标准IEEE 754标准浮点数表示的格式 IEEE 754浮点数标准规定浮点数的第1位是符号位,阶码用移码表示,尾数用原码表示。IEEE 754浮点数有3种类型,格式如表2-4所示。33类 型符 号 位 数阶 码 位 数尾 数 位 数总位数(字长)单精度浮点数182332双精度浮点数1115264临时浮点数1156480 表2-4 IEEE 754的三种浮点数格式34n在IEEE 754标准中,单精度的规格化浮点数表示为

20、:N=1.M2E-127,如阶码的真值X=2,则可以计算出阶码值:E=127+2=129,二进制代码序列为:10000001;阶码的真值X=-22,则阶码值:E=127+(-22)=105,二进制代码序列为:01101001。n例2-16 X=-10100.1101,用IEEE 754标准的单精度浮点数格式表示。解:X=-10100.1101=-1.01001101 2100。数的符号:Sf=1,数的阶码:E=01111111+100=10000011,数的尾数用原码表示,和真值相同,所以X在机器中的表示为(最高数位已隐含):35n2.3.4 浮点数表示和定点数的比较n 当字长相同时,浮点数表

21、示的范围要大得多。如字长32位的定点整数,能表示的最大数是231-1,而IEEE 754标准中的单精度浮点数能表示的最大数大约是2127。n 浮点数表示比定点数表示的分辨率高。即绝对精度非常高(绝对精度随阶码变化)。IEEE 754标准中的单精度浮点数能表示的最高分辨率是2-126,比定点数要高得多。n 浮点数表示比定点数表示的应用范围更广。n 浮点数表示比定点数表示复杂、运算步骤多、硬件实现也复杂得多。n 浮点数表示和定点数表示判断溢出的方法不同。对规格化的浮点数判断溢出是通过判断阶码是否溢出进行的,只有阶码溢出,浮点数才算溢出,如果仅尾数溢出,可通过调整尾数和阶码,使其不溢出。362.4

22、补码的加减运算及溢出判断补码的加减运算及溢出判断n2.4.1 补码加法运算补码加法的公式为:X+Y补=X补+Y补公式说明,两个带符号的补码可以直接相加,和就是两个数和的补码,这一公式也适用于定点小数的补码加法运算。37 操作码为操作码为“加加”时,两数直接相加。时,两数直接相加。例:例:求求(X+Y)(X+Y)补,补,字长字长5 5位。位。1)X=3 Y=2 X补补=0 0011 Y补补=0 0010 0 0101 +5补码补码2)X=3 Y=2 X补补=1 1101 Y补补=1 11101 1011 5补码补码3)X=3 Y=2 X补补=0 0011 Y补补=1 11100 0001(+1补

23、码补码)4)X=3 Y=2 X补补=1 1101 Y补补=0 00101 1111(1补码补码)38n2.4.2 补码减法运算根据补码加法运算的公式很容易得出补码减法运算的公式:X-Y补=X+(-Y)补=X补+-Y补公式说明,求两个数差的补码,可以用被减数的补码加上和减数符号相反数的补码实现。这样,采用补码运算,就可以化减为加,计算机的运算器中只需要设计加法器,减法器就不需要了。39 操作码为操作码为“减减”时,将减转换为加时,将减转换为加,即将减数即将减数变补后与被减数相加。变补后与被减数相加。1)Y=5 Y补补=1 1011 (-Y)补补=0 0101 X=4 X补补=0 01000 10

24、01(+9补码)补码)2)Y=5 Y补补=0 0101 (-Y)补补=1 1011 X=4 X补补=1 1100 1 0111(9补码)补码)例:例:求求(X Y)补补Y补补 (Y)补补:不管不管Y Y补补为正或负,将其符号连同尾数一起为正或负,将其符号连同尾数一起按位变反,末位加按位变反,末位加1 1。40n2.4.3 溢出判断在做加法和减法运算时,如果运算结果超出了数的表示范围,就会发生溢出,计算机需要将状态或标志寄存器的溢出标志位置1。由于同号相加或异号相减,是数的绝对值相加,有可能溢出,而异号相加或同号相减是绝对值相减,不会发生溢出。又由于减法可以化作加法来做,所以只讨论同号数的加法运

25、算来判断溢出就可以了。计算机中判断溢出的方法有多种,下面介绍常用的两种方法。41n1利用运算时符号位和最高数位的进位判断溢出采用单符号运算时,如果两个正数相加,符号位是不会产生进位的,如果最高数位产生了向符号位的进位,会使结果符号位成为1,显然结果就不对了。因为正数相加,结果只能是正的,结果是负数则说明运算结果溢出了。同理,如果两个负数相加,符号位必然产生进位,如果最高数位不产生向符号位的进位,会使结果符号位成为0,显然结果就不对了。因为负数相加,结果只能是负的,结果是正数则说明运算结果溢出了。42n对以上的讨论进行概括,可得出结论:如果运算时符号位和最高数位产生的进位不一致,则发生溢出,运算

26、时符号位和最高数位产生的进位一致,则不发生溢出。n设运算时符号位产生的进位是Cn,最高数位产生的进位是Cn-1,则运算溢出的条件是:CnCn-1=1,可以用一个异或门电路实现溢出判断。43正确正确0 00110 00101)A=3 B=2 3+2:0 0101 C Cf f=0=0C=0C=0正确正确6)A=-6 B=4 -6+4:1 1110 1 10100 0100C Cf f=0=0C=0C=02)A=10 B=7 10+7:0 10100 01111 0001 正溢正溢C Cf f=0=0C=1C=11负溢负溢4)A=-10 B=-7 -10+(-7):0 1111 1 01101 1

27、001C Cf f=1=1C=0C=01正确正确3)A=-3 B=-2-3+(-2):1 1011 1 11011 1110C Cf f=1=1C=1C=11 1正确正确5)A=6 B=-4 6+(-4):0 0010 0 01101 1100C Cf f=1=1C=1C=11144n2采用双符号位判断溢出n双符号位补码又叫变形补码,编码时正数的符号位用00表示,负数的符号位用11表示。当运算结果的符号位是01时,结果为正,但发生正溢出;运算结果的符号位是10时,结果为负,但发生负溢出;运算结果的符号位是00或11时,结果正确,没有发生溢出。n设结果的第一符号位是Sf1,第二符号位是Sf2,则

28、溢出的条件是:Sf1Sf2=1,也可以用一个异或门电路实现溢出判断。n采用变形补码判断溢出,不但能判断溢出,第一符号位还能指出是正溢出还是负溢出,只是在运算时要增加一位符号位。451)3+2:正确正确00 001100 001000 0101 2)10+7:00 101000 011101 0001 正溢正溢正确正确负溢负溢正确正确正确正确3)-3+(-2):11 0111 11 110111 11104)-10+(-7):10 1111 11 011011 10015)6+(-4):00 0010 00 011011 11006)-6+4:11 1110 11 101000 0100第一符号

29、位第一符号位Sf1第二符号位第二符号位Sf246n2.5.1 算术移位n算术移位左移相当于乘以2,右移相当于除以2,和加减运算配合,可实现计算机中的乘除运算。但左移时不应改变数的符号位,如果符号位改变,结果就不正确了。n1原码移位原码的移位规则是符号位不参加移位,左移数值位高位移出,末位补0;右移数值位低位移出,高位补0。当最高数位是1时,左移会丢失数的高位,出现错误;当最低数位是1时,右移会损失数的精度。2.5 移位运算移位运算47n例2-30 X原=00000010,Y原=10000011,将X原 和Y原 左移两位。解:按照原码的移位规则,左移两位后:X原=00001000,Y原=1000

30、1100。n例2-31 X原=00000100,Y原=10011000,将X原 和Y原 右移两位。解:按照原码的移位规则,右移两位后:X原=00000001,Y原=10000110。48n2补码移位n补码的移位规则是符号位参加移位,左移数的末位补0,符号位移出,最高数位会移到符号位;右移数的符号不变,高位补符号位,末位移出。n当正数补码的最高数位是1或负数补码的最高数位是0时,左移会改变数的符号,同时丢失数的高位;当最低数位是1时,右移会损失数的精度。49n例2-32 X补=00000011,Y补=11110101,将X补 和Y补 左移两位。解:按照补码的移位规则,左移两位后:X补=00001

31、100,Y补=11010100。n例2-33 X补=00011100,Y 补=11111100,将X 补 和Y 补 右移两位。解:按照补码的移位规则,右移两位后:X 补=00000111,Y 补=11111111。50n2.5.2 逻辑移位逻辑移位将移位的数看成一串二进制代码,没有大小和正负之分,所有的数位都参加移位,可用于实现数的串行和并行之间的转换等功能。逻辑移位有左移、右移、循环左移和循环右移等几种。51n1逻辑左移和右移n逻辑左移规则是高位移出,末位补0;逻辑右移的规则是高位补0,低位移出。n例2-34 X=10101010,Y=01010101,将X 和Y 右移两位。解:按照逻辑移位

32、规则,左移2位后:X=10101000,Y=01010100。n例2-35 X=11110000,Y=00001111,将X 和Y 右移两位。解:按照逻辑移位规则,右移2位后:X=001111100,Y=00000011。52n2循环左移和右移循环移位是将移位的数首尾相连进行移位,循环左移的规则是将移出的高位补到最低位,循环右移的规则是将移出的低位补到最高位。在许多计算机中,移位还可以带进位位进行,移位时移出的位移到进位位,带进位循环移位还将进位位看成数的一部分参加移位。53n例2-36 X=11010101,Y=00101010,将X 和Y循环左移两位。解:按照循环移位规则,左移2位后:X=01010111,Y=10101000。n例2-37 X=01110001,Y=10001110,将X和Y循环右移两位。解:按照循环移位规则,右移2位后:X=01011100,Y=10100011。54作业:1、2、4、8、9 5556

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁