运算方法和运算部.ppt
《运算方法和运算部.ppt》由会员分享,可在线阅读,更多相关《运算方法和运算部.ppt(104页珍藏版)》请在三一办公上搜索。
1、2007.7.2,计算机组成原理,1,第3章 运算方法和运算部件,计算机组成原理,2007.7.2,计算机组成原理,2,第3章 运算方法和运算部件,数据是计算机处理的对象。从外部形式来看,计算机可处理数值、文字、图、声音、视频,甚至各种模拟信息量。这些形式的信息,在计算机系统内部,主要表示成定点数(整数)、浮点数(实数)、逻辑数(布尔数)、字符、字符串等形式,并且都必须采用数字化编码。在计算机中如何完成数据的各种运算,如何通过硬件电路实现运算,如何校验数据的正确性是本章讨论的主要内容。,2007.7.2,计算机组成原理,3,本章要点:常用的进位计数制及其相互转换数值数据的表示和运算运算部件浮点
2、运算数据校验,2007.7.2,计算机组成原理,4,3.1 数字化信息编码,3.1.1 数字化信息编码的概念目前,计算机的应用非常广泛,遍及人类社会生活的各个领域,产生了巨大的经济效益和社会影响。从用户角度来看,计算机能够处理数值、文字、声音、图画、活动图像等。但是,在计算机内部,这些都不能直接由计算机进行处理和存储,它们必须采取“特殊的表示形式”才能由计算机进行加工处理。这种特殊的表示形式就是二进制编码形式,即采用二进制编码表示的数值、文字、图画、声音和活动图像才能由计算机进行处理。所以,在计算机系统中所指的数据均是以二进制编码形式出现的。,2007.7.2,计算机组成原理,5,计算机内部处
3、理的所有数据都是“数字化编码”的二进制数据。计算机的输入设备(或接口芯片)实现将现实世界中的媒体信息(模拟信号),如声音、文字、图画、活动图像等转化为二进制数据(数字信号)。在计算机中进行处理、存储和传输的信息采用二进制进行编码的原因有以下几点:(1)二进制只有两种基本状态,使用有两个稳定状态的物理器件(如三极管)就可以表示二进制数的每一位,而制造有两个稳定状态的物理器件要比制造有多个稳定状态的物理器件容易得多。例如用高、低两个电位,或用脉冲的有无,或脉冲的正、负极性等都可以方便、可靠地表示“0”和“1”;(2)二进制的编码、计数和运算规则都很简单。可用开关电路实现,简便易行;(3)两个符号“
4、1”和“0”正好与逻辑命题的两个值“真”和“假”相对应,为计算机中实现逻辑运算和程序中的逻辑判断提供了便利的条件。,2007.7.2,计算机组成原理,6,3.1.2 二进制编码和码制转化 在计算机里,常常需要将某一信息(输入)变换为某一特定的代码(输出)。把二进制码按一定的规律编排,使每组代码具有一特定的含义称为二进制编码。例如,电报码中用4位十进制数字表示汉字,就是编码的典型例子。编码是计算机系统的基础,而编码的基础是数制。数制是用于描述数字系统或体系结构的一种方法。为了描述数的大小,人类采用进位技术的方法,称为进位计数制,简称“数制”。人们在日常生活中,习惯于用十进制数,而在计算机中,多采
5、用二进制数,二进制数的优点是其运算规律简单且实现二进制数的数字装置简单。二进制数的缺点是人们对其使用时不习惯且当二进制位数较多时,书写起来很麻烦,特别是在写错了以后不易查找错误,为此,书写时常采用八进制和十六进制数。,2007.7.2,计算机组成原理,7,为了区分这几种进制数,规定在数字的后面加字母D表示十进制数,加字母B表示二进制数,加字母O表示八进制数,加字母H表示十六进制数,十进制数可以省略不加。例如:11D和11都表示是十进制数。另外,也可以用基数作下标表示,例如:(15)10或15表示十进制数,(15)2表示二进制数,(15)8表示八进制数,(15)16表示十六进制数。,2007.7
6、.2,计算机组成原理,8,对于任何进制数,都有以下几个基本特点。(1)基数 在某种数制中,允许使用的数字符号的个数,称为这种数制的基数或基。例如:十进制的基数为10,有十个数码09;二进制的基数为2,有两个数码0和1;八进制的基数为8,有八个数码07;十六进制的基数为16,有十六个数码09和A到F。(2)位权 任一种N进制中,Ni 称为第i位的权。例如十进制数756中最高位的位权为102,中间位的位权为101,最低位的位权为100。(3)进位 在同一位权上计数值达到基数时,就要进入高一级的位权,这就是数制中的进位。基数是不同数制的进位条件。例如十进制数是“逢十进一”和“借一当十”。,2007.
7、7.2,计算机组成原理,9,1几种常用进制,(1)十进制(Decimal)十进制用09十个数字符号,以一定的规律排列起来,表示数值的大小。相邻位之间,低位逢十向高位进一。它的基数为10,各位的系数Ki可以是09十个数字中任一个。各位的权为10i。因而,任意一个n位十进制数Ni可表示为:,例如:,2007.7.2,计算机组成原理,10,2)二进制(Binary)二进制是数字电路中应用最广泛的计数制。因为在数字电路中通常只有高电平和低电平两个状态。这两个状态刚好可以用二进制数中的两个符号0和1来表示。它的运算规则简单,在电路中易于实现。在二进制中,相邻位之间,低位逢二向高位进一。它的基数为2,各位
8、的系数Ki可以是0或1,各位的权为2i。因而任一个n位二进制数N2可表示为:,例如:,2007.7.2,计算机组成原理,11,(3)八进制(Octal)如果将一个数值较大的十进制数转换为二进制数,不仅位数多,难以记忆,且不便书写,易出错。因而除了二进制外,常用的还有八进制或十六进制。八进制中,各相邻位之间,低位逢八向高位进一。它的基数为8,各位的权为8i,各位的系数Ki可以是07八个数字中任意一个,因而任意一个n位八进制数N8可表示为:,例如:,2007.7.2,计算机组成原理,12,(4)十六进制(Hexadecimal)十六进制数中,各相邻位之间,低位逢十六向高位进一。它的基数为16,为了
9、书写和计算方便,在十六进制数中,各位的系数Ki可以是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数字符号中任一个。各位的权为16i,因而任一个n位十六进制数N16可表示为:,例如:,2007.7.2,计算机组成原理,13,表3-1给出了上述四种进制之间的对应关系。表3-1 四种进位制数之间的对应关系,2007.7.2,计算机组成原理,14,2不同进制间的转换(1)二进制、八进制、十六进制数转换成十进制数当二进制、八进制、十六进制数转换成十进制数时,只要“按权展开”即可。【例3-1】二进制数转换成十进制数。(10100.01)2=(124+023+122+021+020+
10、02-1+12-2)10=(20.25)10【例3-2】八进制数转换成十进制数。(300.6)8=(382+081+080+68-1)10=(192.75)10【例3-3】十六进制数转换成十进制数。(3B.C)16=(3161+11160+1216-1)10=(59.75)10(2)十进制数转换成二进制、八进制、十六进制数,2007.7.2,计算机组成原理,15,十进制数转换成二进制、八进制、十六进制数时,因为整数部分和小数部分转换的规则不同,所以要将整数和小数部分分开进行转换。整数部分的转换整数部分的转换规则是“除基取余,逆向取”。也就是说,用要转换的十进制整数去除以基数R,将得到的余数作为
11、结果数据中各位的数字,直到余数为0为止。先得到的余数作为转换后的最低位,最后得到的余数作为转换后的最高位。【例3-4】将十进制整数835分别转换成二进制和八进制数。二进制转换:,所以,(834)10=(1502)8,2007.7.2,计算机组成原理,16,二进制转换:,所以,(834)10=(1101000010)2小数部分的转换小数部分的转换规则是“乘基取整,正向取”。也就是说,用要转换的十进制小数去乘以基数R,将得到的乘积的整数部分作为结果数据中各位的数字,小数部分继续与基数R相乘。以次类推,直到某一步乘积的小数部分为0或已得到希望的位数为止。最后,将先得到的整数部分作为转换后的最高位,最
12、后得到的整数部分作为转换后的最低位。,2007.7.2,计算机组成原理,17,【例3-5】将十进制小数0.6875分别转换成二、八进制数。0.68752=1.375 1 高位0.3752=0.75 0 0.752=1.5 1 0.52=1.0 1 低位所以,(0.6875)10=(0.1011)20.68758=5.5 5 高位0.58=4.0 4 所以,(0.6875)10=(0.54)8 低位其它例题(略),2007.7.2,计算机组成原理,18,二进制数转换成八进制数 二进制数转换为八进制数的规则可以概括为“三位并一位”。即以小数点为基数,整数部分从右至左,每三位一组,最高位不足三位时,
13、添0补足三位;小数部分从左至右,每三位一组,最低有效位不足三位时,添0补足三位。然后,将各组的三位二进制数按22,21,20权展开后相加,得到一位八进制数。【例3-9】将(1000110.01101)2转换成八进制数。001 000 110.011 010 1 0 6.3 2 所以,(1000110.01101)2=(106.32)8,2007.7.2,计算机组成原理,19,二进制数转换成十六进制数二进制数转换为十六进制数规则可概括为“四位并一位”。即以小数点为基数,整数部分从右至左,每四位一组,最高位不足四位时,添0补足四位;小数部分从左至右,每四位一组,最低有效位不足四位时,添0补足四位。
14、然后,将各组的四位二进制数按23,22,21,20权展开后相加,得到一位十六进制数。【例3-10】将(10010111.11011)2转换成十六进制数。1001 0111.1101 1000 9 7.D 8 所以,(10010111.11011)2=(97.D8)16思考:计算机能够直接识别运算的是二进制,那么计算机中还要采用八进制、十六进制的目的是什么?,2007.7.2,计算机组成原理,20,3.2 常用的数据表示,3.2.1 真值与机器数在计算机内部,数据是以二进制的形式存储和运算的,无论数值还是数的符号,都只能用0、1来表示。数的正负用高位字节的最高位来表示,定义为符号位,用“0”表示
15、正数,“1”表示负数。例如,在机器中用8位二进制表示一个数+42,其格式为:00101010 符号位,“0”表示正而用8位二进制表示一个数-53,其格式为:10110101 符号位,“1”表示负在计算机内部,符号和数字都用二进制码表示,两者合在一起构成数的机内表示形式,称为机器数,而它真正表示的带有符号的数称为这个机器数的真值。机器数又分为定点数和浮点数。以上分析可见,在机器数中,用0、1取代了真值的正、负号。,2007.7.2,计算机组成原理,21,3.2.2 数的机器码表示,整数又可分为无符号整数(不带符号的整数)和整数(带符号的整数)。无符号整数中,所有二进制位全部用来表示数的大小,有符
16、号整数用最高位表示数的正负号,其他位表示数的大小。无符号数在计算机中通常有三种表示方法。(1)位数不等的二进制码。(2)BCD码。BCD码的表示形式一般又有两种:压缩BCD码和非压缩BCD码。前者每位BCD码用4位二进制表示,1个字节(8位二进制)表示2位BCD码,如10010011B表示二进制数93;后者每位BCD码用1个字节表示,高4位总是0000,低4位的00001001表示09。(3)ASCII码(American Standard Code for Information Interchange,ASCII),美国标准信息交换码。该编码已被国际标准化组织ISO采纳,作为国际通用的信息
17、标准交换代码。ASCII码表示与非压缩BCD码表示很相似,低4位完全相同,都是用00001001表示09;差别仅在高4位,ASCII码不是0000,而是0011。ASCII码包含52个大、小写英文字母,10个十进制数字字符,32个标点符号、运算符号、特殊号,还有34个不可显示打印的控制字符编码,一共是128个编码。,2007.7.2,计算机组成原理,22,3.2.3 定点数和浮点数表示,当所要处理的数含有小数部分时,就有一个如何表示小数点的问题。在计算机中并不用某个二进制位来表示小数点,而是隐含规定小数点的位置。若约定小数点的位置是固定的,这就是定点表示法;若给定小数点的位置是可以变动的,则成
18、为浮点表示法。他们不但关系到小数点的问题,而且关系到数的表示范围和精度。1定点数计算机处理的数据不仅有符号,而且大量的数据带有小数,小数点不占有二进制一位而是隐含在机器数里某个固定位置上。通常采取两种简单的约定:一种是约定所有机器数的小数的小数点位置隐含在机器数的最低位之后,叫定点整数。如 小数点位置另一种约定所有机器数的小数点隐含在符号位之后、有效部分最高位之前,叫定点小数,如:小数点位置定点整数和定点小数在计算机中的表示形式没什么区别,其小数点完全靠事先约定而隐含在不同位置。,2007.7.2,计算机组成原理,23,2.浮点数当要处理的数是既有整数又有小数的混合小数时,采用定点数格式很不方
19、便。为此,人们一般都采用浮点数进行运算。浮点数与科学计数法相似,把一个二进制数通过移动小数点位置表示成阶码和尾数两部分:其中:EN的阶码,是有符号的整数;SN的尾数,是数值的有效数字部分,一般规定取二进制定点小数形式。如:(101.1101)2=2+30.1011101,(0.01011101)2=2-11011101浮点数的格式如下:,2007.7.2,计算机组成原理,24,浮点数由阶码和尾数两部分组成,底数2在机器数中不出现,是隐含的。其中,阶码一般用补码定点整数表示,尾数一般用补码或原码定点小数表示。为保证不损失有效数字,一般还对尾数进行规格化处理,即保证尾数的最高位是1,实际大小通过阶
20、码进行调整。后面3.4节将对浮点数进行详细介绍。思考:计算机中引入浮点数的目的是什么?,2007.7.2,计算机组成原理,25,3.3 二进制数值数据的编码与运算算法,3.3.1 原码、反码、补码的定义1原码对于无符号数,原码是一种用数值本身表示的二进制编码。对于有符号数,原码是一种以符号和数值表示的二进制编码。有符号数的原码编码规则是:用最高位表示符号,整数用0表示,负数用1表示。其他位表示该数的绝对值。例如:X=(+105)X原=(01101001)2Y=(-105)Y原=(11101001)2注意:0的原码有两种,即+0原=(00000000)2,-0原=(10000000)2结论:正数
21、的原码是它本身,负数的原码是真值取绝对值后,在最高位(左端)补“1”。,2007.7.2,计算机组成原理,26,2反码反码使用得较少,它只是补码得一种过渡。对于无符号数,反码是一种用对数值按位取反表示的二进制编码。对于有符号数,反码是一种用符号位和对数值按位取反表示的二进制编码。有符号数的反码编码规则是:用最高位表示符号,正数用0表示,负数用1表示。正数的反码是其原码本身,负数反码的数值部分是原码的数值部分按位取反。例如:+65原=(01000001)2+65反=(01000001)2-65原=(11000001)2 65反=(00111110)2注意:0的反码有两种,即+0反=(000000
22、00)2,-0反=(11111111)2。结论:正数的反码与其原码相同,负数的反码是符号位不变,其余各位按位取反。,2007.7.2,计算机组成原理,27,3补码补码是计算机处理有符号数的运算常用的一种方法。对于无符号数,补码是一种用对数值按位取反并加1表示的二进制编码。对于有符号数,补码是一种用符号和对数值按位取反并加1表示的二进制编码。对于n位计算机,某数x的补码定义为:结论:正数的补码等于正数本身,负数的补码等于模(即2n)减去它的绝对值,即符号位1不变,数值部分是原码的数值部分按位取反并加1。,2007.7.2,计算机组成原理,28,3补码补码是计算机处理有符号数的运算常用的一种方法。
23、对于无符号数,补码是一种用对数值按位取反并加1表示的二进制编码。对于有符号数,补码是一种用符号和对数值按位取反并加1表示的二进制编码。对于n位计算机,某数x的补码定义为:结论:正数的补码等于正数本身,负数的补码等于模(即2n)减去它的绝对值,即符号位1不变,数值部分是原码的数值部分按位取反并加1。,2007.7.2,计算机组成原理,29,4三种码制的比较(1)对于正数它们都等于真值本身,而对于负数各有不同的表示;(2)原码和反码各有两种零的表示法,而补码具有唯一的零。3.3.2 补码加、减运算规则在计算机中可进行两种运算:算术运算和逻辑运算。算术运算时,参与运算的二进制数码表示的是数值大小。常
24、见的算术运算有加、减、乘、除、乘方、开方等。一般计算机中都提供了加、减、乘、除指令,其他更复杂的算术运算要利用算术变换成基本的四则运算来实现。从硬件实现的角度看,各种算术运算的基础是加、减运算。对于补码机,加法运算又是基础的基础。补码的加减法运算规则:XY补=X补+Y补其中,X、Y为正、负数均可。该式说明,无论加法还是减法运算,都可由补码的加运算实现,运算结果(和或差)也以补码表示。若运算结果不产生溢出,且最高位(符号位)为0,则表示结果为正数,最高位为1,则结果为负数。,2007.7.2,计算机组成原理,30,3.3.3 补码加减法运算部件,根据上节所述,对于减法运算,因为X-Y补=X+(-
25、Y)补=X补+-Y补,所以计算时,可以先求出-Y的补码,然后再进行加法运算,这样在用逻辑电路实现减法运算时,可以只考虑用加法电路,而不必设置减法电路。实现补码加减运算电路如图3-1所示。图3-1,2007.7.2,计算机组成原理,31,在图3-1中,被加数(或被减数)X和加数(或减数)Y分别存放在A寄存器和B寄存器中。当执行加法运算时,执行X补+Y补,将X补和Y补从A寄存器和B寄存器送到加法器的两个输入端。当执行减法运算时,执行Y补的各位取反(即01,10),然后在最低位加1,即可得-Y补。假设Y=0.0011,则-Y的真值应等于-0.0011。根据上述方法,先取Y数中的各位的反值,得1.11
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算 方法
链接地址:https://www.31ppt.com/p-5319921.html