计算机组成原理运算方法与运算器_第1页
计算机组成原理运算方法与运算器_第2页
计算机组成原理运算方法与运算器_第3页
计算机组成原理运算方法与运算器_第4页
计算机组成原理运算方法与运算器_第5页
已阅读5页,还剩203页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章 运算方法和运算器,2020年8月9日星期日,2,目录,2.0 数据的类型 2.1 数据与文字的表示方法 (掌握) 2.2 定点加法、减法运算 (掌握) 2.3 定点乘法运算 (掌握) 2.4 定点除法运算 (掌握) 2.5 定点运算器的组成 (了解) 2.6 浮点运算方法和浮点运算器(理解),2020年8月9日星期日,3,学习要求,掌握定点和浮点数的表示方法,表示范围; 掌握定点数的补码加减法、常用的乘除法运算方法; 掌握浮点数的加减运算方法; 掌握数据校验的方法; 理解溢出判断方法; 清楚运算器部件的组成结构及设计方法。,2020年8月9日星期日,4,2.0 数据的类型(1/2),按

2、数制分: 十进制:在微机中直接运算困难; 二进制:占存储空间少,硬件上易于实现,易于运算; 十六进制:方便观察和使用; 二-十进制:4位二进制数表示1位十进制数,转换简单。 按数据格式分: 真值:没有经过编码的直观数据表示方式,其值可带正负号(+、-),任何数制均可; 机器数:符号数字化后的数值(包括正负号的表示),一般位数固定(8、16、32),不能随便忽略任何位置上的0或1;,2020年8月9日星期日,5,2.0 数据的类型(2/2),按数据的表示范围分: 定点数:小数点位置固定,数据表示范围小; 浮点数:小数点位置不固定,数据表示范围较大。 按能否表示负数分: 无符号数:所有均为表示数值

3、,直接用二进制数表示; 有符号数:有正负之分,最高位为符号位,其余位表示数值。 按编码不同又可分为原码、反码、补码、移码,2020年8月9日星期日,6,2.1 数据与文字的表示方法,2.1.1 数据格式 2.1.2 数的机器码表示 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法 2.1.5 校验码,2020年8月9日星期日,7,2.1.1 数据格式,计算机在数的表示方式时,应该考虑一下几个因素: 表示的数据类型(符号、小数点、数值) 数值的范围 数值精度 存储、处理、传送的硬件代价 计算机常用的数据表示格式有两种: 定点表示:小数点位置固定 浮点表示:小数点位置不固定,2020

4、年8月9日星期日,8,2.1.1数据格式定点数,一、定点表示法 所有数据的小数点位置固定不变 由于定点数在约定机器中所有的小数点位置是固定不变的,所以小数点“.”在数据表示中省略了。 理论上小数点位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式): 纯小数 纯整数 定点数表示: 带符号数 不带符号数,2020年8月9日星期日,9,2.1.1数据格式定点数,假设用n+1位字来表示一个定点数x, 对于任意定点数x= xn xn-1 xn-2 x2 x1 x0 ,在定点机中如下图表示:,2020年8月9日星期日,10,定点数:小数点固定在某一位置的数据; 纯小数: 表

5、示形式 (原码表示) 有符号数 x=xnxn-1xn-2x1 x0 |x|1-2-n ;xn为符号位 无符号数 x=xnxn-1xn-2x1 x0 0 x 1-2-n ; xn为符号位即xn=0 数据表示范围 0.00= 0 |x| 1-2-n = 0.11 纯整数: 表示形式 有符号数 x=x n x n-1 x 1 x 0 |x|2n-1 ; xn为符号位无符号数 x=x n x n-1 x 1 x 0 0 x2n+1-1 ; xn为数值位 注意:小数点的位置是机器约定好的,并没有实际的保存。,xn xn-1xn-2xn-3 x1 x0,xnxn-1xn-2x1x0,2.1.1 数据格式定

6、点数,设采用n+1位数据,2020年8月9日星期日,11,定点数:最值情况 纯小数: (原码表示时最值情况) 表示形式 最大正数 最大正数值为:1-2-n, 最小正数 最小正数的值为:2-n,2.1.1 数据格式定点数,设采用n+1位数据,0 1 1 1 1 1,2020年8月9日星期日,12,定点数:最值情况 纯小数: (原码表示时最值情况) 表示形式 绝对值最大负数 绝对值最大负数值为:-(1-2-n),2.1.1 数据格式定点数,设采用n+1位数据,2020年8月9日星期日,13,定点数:最值情况 纯小数: (补码表示时最值情况) 表示形式 绝对值最大负数 绝对值最大负数值为:-1 通过

7、2.2节公式可推出此结论,2.1.1 数据格式定点数,设采用n+1位数据,2020年8月9日星期日,14,定点数:最值情况 纯整数: 原码表示的绝对值最大负数 原码表示的绝对值最大负数值为:-(2n-1) 补码表示的绝对值最大的负数 补码表示的绝对值最大的负数值为:-2n,2.1.1 数据格式定点数,设采用n+1位数据,2020年8月9日星期日,15,2.1.1数据格式,4、定点表示法的特点 定点数表示数的范围受字长限制,表示数的范围有限; 定点表示的精度有限 机器中,常用定点纯整数表示; 如果用定点表示,则如何表示实数(包括小数和整数)呢? -引入浮点,2020年8月9日星期日,16,科学计

8、数法的表示,一个十进制数可以表示成不同的形式: 同理,一个二进制数也可以有多种表示:,其中2+100,2-100是比例因子,存储时将有效数字和比例因子分别存储,即分别存储数的表示范围与精度,比例因子变化即数的小数点变化,因此称为浮点表示法。,2020年8月9日星期日,17,2.1.1 数据格式浮点数,浮点数:小数点位置可变,形如科学计数法中的数据表示。 浮点数格式定义: N= Re M M:尾数(mantissa) ,是一个纯小数,表示数据的全部有效数位,决定着数值的精度; R:基数(radix) ,可以取2、8、10、16,表示当前的数制; 微机中,一般默认为2,隐含表示。 e: 阶码(ex

9、ponent) ,是一个整数,用于指出小数点在该数中的位置,决定着数据数值的大小。 机器数的一般表示形式(为了方便浮点数比较大小,一般采用第二种方法),2020年8月9日星期日,18,浮点数的IEEE754标准表示,为便于软件移植,按照 IEEE754 标准,实际机器内32位浮点数和64位浮点数的标准格式如下:,2020年8月9日星期日,19,32位浮点数的IEEE754 标准表示(采用下面的表示方法),数符S:表示浮点数的符号,占1位,0正数、1负数; 尾数M:23位,原码纯小数表示,小数点在尾数域的最前面; 由于原码表示的规格化浮点数要求,最高数值位始终为1,因此该标准中隐藏最高数值位(即

10、数值1),标准浮点数的存储在尾数中隐含存储着一个1,因此在计算尾数的真值时比一般形式要多一个整数1。尾数的实际值为1.M; 阶码E:8 位,采用有偏移值的移码表示,移码域值大则其指数也大; 移127码,即E=e+127,E的8位二进制数即为移127码的编码; 浮点数的真值:N=(-1)S(1.M)2E-127,2020年8月9日星期日,20,IEEE754 标准格式 (64位格式),其真值表示为: x=(1)S(1.M)2E1023 eE1023,2020年8月9日星期日,21,浮点数的规格化,浮点数的一般表示 同一个浮点数的表示是不唯一的。如0.1101可表示为0.0110121 ,也可表示

11、为1.1012-1 。 机器数的表示不同,不利于运算 规格化的目的 保证浮点数表示的唯一性; 为了提高数据的精度,2020年8月9日星期日,22,浮点数的规格化,规格化要求 按国际电子电气工程师协会规定的标准,浮点数的尾数要用原码表示,即符号位 : 0 表示正,1 表示负 当尾数的值不为0时,规定其绝对值应 0.5,也就是最高位为1 否则要修改阶码同时移动小数点的位置,使其满足这一要求,这个过程称为浮点数的规格化。 规格化处理: 尾数向左移n位(小数点右移),同时阶码减n; 尾数向右移n位(小数点左移),同时阶码加n。,左规,右规,2020年8月9日星期日,23,规格化浮点数实际运算时 既然非

12、 0 值浮点数的尾数数值最高位必定为 1,则在保存浮点数到内存前,通过尾数右移, 强行把该位去掉, 用同样多的尾数位就能多存一位二进制数,有利于提高数据表示精度,称这种处理方案使用了隐藏位技术。当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。,浮点数的规格化,2020年8月9日星期日,24,浮点数的规格化,尾数用原码表示时 尾数最高数值位为1; 尾数形如0.1(正);或1.1(负); 例如,0.01125要规格化则变为0.1124; 0.01125要规格化则变为1.1124; 尾数用补码表示时 尾数最高数值位和尾数符号位相反; 尾数形如0.1(正);或1.0(负) 例如,0.0

13、1125要规格化,则变为0.1124; 0.01125要规格化,则变为1.0124;,2020年8月9日星期日,25,阶码E的移码表示法(一般浮点数表示方法),移码通常用来表示浮点数的阶码,由真值加一个固定的常数生成,这个固定的常数称为偏移量。 设定点整数移码的形式为xmx2x1 x0,则移码定义为: x移=2m+x -2mx2m 注意:m为有效数据位位数 x移是机器数,x是真值,2m是一个固定的偏移量,移码共有m+1位。 例、某浮点数阶码8位,含一位符号位,移码表示。当阶码x = -0111 1111,则: x移 = 27 - 0111 1111 =128-127 =0000 0001,20

14、20年8月9日星期日,26,阶码E的移码表示法,移码通常用来表示浮点数的阶码,由真值加一个固定的常数生成,这个固定的常数称为偏移量。 例如x移 = 27 - 0111 1111 =128-127 =0000 0001 注意在一般的浮点数表示形式,阶码用移码表示时(8位阶码)偏移量是128,但在浮点数754标准表示时,阶码用移码表示时偏移量是127 在实际的使用中,如果没有任何的特殊说明,则默认为浮点数的一般表示形式。,2020年8月9日星期日,27,2.1.3数的定点表示与浮点表示一、浮点表示法,我们在看一看下面的表: 【X】移=2m+X,128,1000 0000,0000 0000,111

15、1 1111,1000 0000,1000 0001,0000 0001,0111 1111,1000 0001,1111 1110,1111 1111,1000 0000,1111 1111,0000 000,1000 0000,0000 0000,0000 0000,0000 0000,1000 0000,0000 0001,0000 0001,0000 0001,1000 0001,0111 1111,0111 1111,0111 1111,1111 1111,2020年8月9日星期日,28,浮点数的表示范围,在浮点数的表示范围中,有两种情况被称为机器零: (1)若浮点数的尾数为零,无论

16、阶码为何值; (2)当阶码的值遇到比它能表示的最小值还要小时(阶码负溢出),无论其尾数为何值,机器零,机器零:浮点数的尾数为零或阶码为最小数,2020年8月9日星期日,29,浮点数的表示范围,0,最大负数,最小正数,最小负数,最大正数,下溢区,上溢区,上溢区,负数区,正数区,浮点数的溢出:阶码溢出 上溢:阶码大于所能表示的最大值; 下溢:阶码小于所能表示的最小值; 机器零: 尾数为 0,或阶码小于所能表示的最小值;,2020年8月9日星期日,30,浮点数的最值,设浮点数格式为,移码表示-2m,+(2m-1),补码表示-1,+(1-2-n),-12+( 2m-1 ),-2-n2-2m,+2-n2

17、-2m,+(1-2-n)2+(2m-1),1 111;1 0000,0 000;1 1111,0 000;0 0001,1 111;0 1111,同左,同左,0 000;1 0111,-(2-1+2-n)2-2m,+2-12-2m,同左,同左,0 000;0 1000,2020年8月9日星期日,31,IEEE754 标准的32位数据表示,IEEE754 标准中的阶码E 正零、负零 E与M均为零,正负之分由数据符号确定; 正无穷、负无穷 E为全1,M为全零,正负之分由数据符号确定; 阶码E的其余值(0000 00011111 1110)为规格化数据; E为1254,真正的指数e的范围为-126+

18、127 为避免浮点数下溢,允许采用比最小规格化数还小的非规格化数来表示,但此时尾数M前的隐含位为0,而不是1。,E=0000 0000,M=0000 0000,E=1111 1111,M=0000 0000,0000 0000 1111 1111,2020年8月9日星期日,32,IEEE754 标准对特殊数据的表示,阶码的值在1254,移码则在-126127,IEEE 754标准的单精度和双精度浮点数表示格式。 其中,阶码值0和255分别用来表示特殊数值:当阶码值为255时,若尾数部分为0,则表示无穷大;若尾数部分不为0,则认为这是一个非数值。 当阶码和尾数均为0时则表示该数值为0,因为非零数

19、的有效位总是1,因此特别约定,这表示为0。 当阶码为0, 尾数不为0时,该数绝对值较小, 允许采用比最小规格化数还要小的数表示。,2020年8月9日星期日,33,【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。,最大正数 最大正数为0.11120111 即(129)231 该浮点数即为规格化数形式;,2020年8月9日星期日,34,【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。,最小正数 非规格化数形式 最小正数为0.0012100 即29

20、2(25)= 29 2-32 规格化数形式 最小正数为0.12100 21 2(25) 233,2020年8月9日星期日,35,【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。,最小负数 最小负数为0.112011 即(129)2(251)= (129) 231 该浮点数即为规格化数形式;,2020年8月9日星期日,36,【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。,最大负数 非规格化数形式 最大负数为0.0012100 即 29 2(25

21、)= 29 2-32 规格化数形式 最大负数为0. 12100 即 21 2(25)= 2-1 232,2020年8月9日星期日,37,【例2】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码和尾数均采用补码表示,分析其规格化浮点数表示范围。,最大正数 阶码最大、尾数最大 最大正数为0.1112111 (129)231 最小正数 最小正数为0.1000232 即2-3221 2-33 注意:不是 因为0.01 2-32不是规格化数。,2020年8月9日星期日,38,【例2】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码和尾数均采用补码表示,分析其规格化浮点数表示范

22、围。,最小的负数 最小负数为1.000231 即231(1)= 231 最大的负数 最大负数为0.1001232 即( 29+ 21 )232 注意:因有规格化要求,不是,2020年8月9日星期日,39,课本P18 例1,例1 若浮点数的754标准存储格式为(41360000)16,求其浮点数的十进制数值。 解: (41360000)16 = 0100 0001 0011 0110 0000 0000 0000 0000 指数e=E-127= 1000 0010 0111 1111=0000 0011=3 尾数1.M=1.011 0110 0000 0000 0000 0000=1.01101

23、1 浮点数 N =(-1)S(1.M)2e = (-1)0(1. 011011)23 = (11.375)10,数符S,阶码E,尾数M,2020年8月9日星期日,40,课本P18 例2,例2 将(20.59375)10转换成754标准的32位浮点数的二进制存储格式。 解: (20.59375)10(10100.10011)2 将尾数规范为1.M的形式: 10100.100111.01001001124e4 可得:M 010010011 S 0E 41271311000 0011 故,32位浮点数的754标准格式为: 0100 0001 1010 0100 1100 0000 0000 0000

24、(41A4C000)16,2020年8月9日星期日,41,单精度浮点数与双精度浮点数,高级语言的float、double使用的即是IEEE754规定的格式。 float :32位浮点值,也叫单精度浮点数(4字节保存) double:64位浮点值,也叫双精度浮点数(8字节保存) 单精度浮点数的例子:,1位 8位 7位 8位 8位,-1100,0.01,2020年8月9日星期日,42,求解技巧,例如:将下列十进制数表示成IEEE754格式的32位浮点数二进制存储形式。 27/32 11/512 求解: 27/32=27*(1/32) = (0001 1011) *2-5=1.1011*2-1 尾数

25、:1.1011;阶码:e=-5+4=-1 ,E=e+127=126 IEEE754数据:0 0111 1110 1011 0000 0000 0000 0000 000 11/512= (0000 1011) =1.011*2-6 尾数:1.011;阶码:e=-9+3=-6 ,E=e+127=121 IEEE754数据:0 0111 1001 0110 0000 0000 0000 0000 00,2020年8月9日星期日,43,例:将十进制数-54表示成二进制定点数(16位)和浮点数(16位,其中数值部分10位,阶码部分4位,阶符和数符各取1位),并写出它在定点机和浮点机中的机器数形式。,令

26、 x = -54,则x = -110110 16位定点数真值表示: x = -000 0000 0011 0110 定点机器数形式 x原: x补: 浮点数规格化表示:x = -(0.1101100000)2110 浮点机器数形式 x原: x补:,非IEEE754标准,1 000 0000 0011 0110,1 111 1111 1100 1010,0 0110 ; 1 11 0110 0000,0 0110 ; 1 00 1010 0000,2020年8月9日星期日,44,浙江大学考研试题,计算机储存程序的特点之一是把数据和指令都作为二进制信号看待。今有一计算机字长32bit,数符位是第31

27、bit;单精度浮点数格式如图所示。 对于二进制数1000 1111 1110 1111 1100 0000 0000 0000 表示一个补码整数,其十进制值是多少? 表示一个无符号整数,其十进制值是多少? 表示一个IEEE754标准的单精度浮点数,其值是多少?,2020年8月9日星期日,45,二进制数1000 1111 1110 1111 1100 0000 0000 0000,表示一个补码整数,其十进制值是多少? 作为补码整数,其对应的原码是1111 0000 0001 0000 0100 0000 0000 0000 十进制值是 -(230+ 229 +228 + 220 + 214 )

28、表示一个无符号整数,其十进制值是多少? 作为无符号整数,其十进制值是231+ 227+ 226 +225 + 224 + 223+ 222 +221 + 219 +218 + 217 +216 + 215 +214,2020年8月9日星期日,46,二进制数1000 1111 1110 1111 1100 0000 0000 0000,作为IEEE754标准的单精度浮点数 阶码E是0001 1111 指数e阶码E1270001 11110111 1111 -1100000B-96D 尾数M=110 1111 1100 0000 0000 0000 则1.M=1. 110 1111 1100 00

29、00 0000 0000=1.110 1111 11 单精度浮点数值为: X (-1)s1.M2e-(1.110 1111 11)2-96 -(0.1110 1111 11)2-95 -0.31152-95,2020年8月9日星期日,47,2.1.2 数的机器码表示,重点: 1、原码、补码、移码的表示形式 2、补码的定义 3、原码、补码、移码的表示范围,2020年8月9日星期日,48,1、原码表示法定义,定义: 定点小数:x原 定点整数:x原 举例: +0.110 原 0.110 -0.110原 1 - (-0.110) = 1.110 +110原 0110 -110原 23- (-110)

30、1000 +110 = 1110,x1 x 0,1- x=1+|x| 0 x -1,x2n x 0,2n- x=2n+|x| 0 x -2n,实际机器中保存时并不保存小数点,2020年8月9日星期日,49,1、原码表示法特点,0有两种表示法 +0原 = 0000 ;-0原 = 1000 数据表示范围 定点小数:-1X1 定点整数: -2nX2n (若数值位n=3即:-8X8) 优点 与真值对应关系简单; 缺点 参与运算复杂,需要将数值位与符号位分开考虑。,2020年8月9日星期日,50,要将指向5点的时钟调整到3点整,应如何处理?,5-2=3,5+10=3(12自动丢失。12就是模),补码表示

31、法的引入(1/3),2020年8月9日星期日,51,继续推导: 5-2=5+10(MOD 12) 5+(-2)=5+10(MOD 12) -2=10(MOD 12) 结论:,在模为12的情况下,-2的补码就是10。一个负数用其补码代替,同样可以得到正确的运算结果。,补码表示法的引入(2/3),2020年8月9日星期日,52,进一步结论: 在计算机中,机器能表示的数据位数是固定的,其运算都是有模运算。 若是n位整数,则其模为2n; 若是小数,则其模为2。 若运算结果超出了计算机所能表示的数值范围,则只保留它的小于模的低n位的数值,超过n位的高位部分就自动舍弃了。,补码表示法的引入(3/3),20

32、20年8月9日星期日,53,1.计算机本身是一个模数系统 因为机器字长有限,当计算结果的位数超过机器字长时,向更高位的进位就会丢失, 这就是机器的模。 2.对n+1位的定点小数, XS . X1X2Xn,符号位XS的位权是20,符号位向更高位的进位要丢失, 所以定点小数的模是21 =2 3.对n位的定点整数, XS X1X2Xn-1, 符号位XS的位权是2n,符号位向更高位的进位要丢失, 故定点整数的模是2n 。,2020年8月9日星期日,54,2、补码表示法定义,定义: 定点小数: x补 定点整数: x补 举例: +0.110 补 0.110 -0.110 补 10 + (-0.110) =

33、 1.010 +110补 0110 -110 补 24+(-110 ) 10000 -110 = 1010,x 1 x 0,2+x = 2 - |x| 0 x -1,x 2n x 0,2n+1+x = 2n+1-|x| 0 x -2n,x为n+1位,(mod 2),(mod 2n+1),实际机器中保存时并不保存小数点,2020年8月9日星期日,55,2、补码表示法特点,0有唯一的表示法 -0补 24+(-0 ) mod 24 0000 +0补 数据表示范围 定点小数:-1X1 定点整数: -2nX2n (若n=3,则-8X8) 加减运算规则 XY补X补 Y补 (mod 2) 只要结果不溢出,可

34、将补码符号位与数值位一起参与运算。 x补补x原 补码除2操作,可通过算术右移实现(,符号位向右移动后,正数的话补0,负数补1,) -0.0110补11010,则(-0.0110)/10补 = 11101,真值为-0.0011,比原码多一个负的最小值表示,其编码为100*0,2020年8月9日星期日,56,由原码求补码,由原码求补码的简便原则(负数) 除符号位以外,其余各位按位取反,末位加1; 从最低位开始,遇到的第一个1以前的各位保持不变,之后各位取反。,例:X原= 1 1 0 1 1 0 1 0 0,X补=,1 0 1 0 0 1,1 0 0,2020年8月9日星期日,57,由X补求-X补

35、连符号位一起各位求反,末位加1。 例:X补=1.1010101 解:,由-X补求X补,此规则同样适用。,求相反数的补码,X补= 1 1 0 1 0 1 0 1,0 0 1 0 1 0 1 0,+,1,-X补= 0 0 1 0 1 0 1 1,2020年8月9日星期日,58,3、移码表示法,移码通常用于表示浮点数的阶码 用定点整数形式的移码 定义:x移=2n+x -2n x 2n 注意n为x的有效位数的个数 与x补的区别:符号位相反 优点: 可以比较直观地判断两个数据的大小; 浮点数运算时,容易进行对阶操作; 表示浮点数阶码时,容易判断是否下溢;,4位补码与移码,2020年8月9日星期日,59,

36、原、补、移码的编码形式,正数: 原、补码的编码完全相同; 补码和移码的符号位相反,数值位相同; 负数: 原码: 符号位为1 数值部分与真值的绝对值相同 补码: 符号位为1数值部分与原码各位相反,且末位加1 移码: 符号位与补码相反,数值位与补码相同,2020年8月9日星期日,60,课本P22例6以定点整数为例,用数轴形式说明原码、反码、补码、移码表示范围和可能的数码组合情况。,2020年8月9日星期日,61,2020年8月9日星期日,61,课本P22例7将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、反码、补码、移码值。,符号位+0;- 1,数值位各位取反,数值位末位加1,

37、符号位(正负数)取反,负数时,2020年8月9日星期日,62,P22例8设机器字长16位,定点表示,尾数15位,数符1位,问: (1)定点原码整数表示时,最大正数是多少?最小负数是多少? (2)定点原码小数表示时,最大正数是多少?最小负数是多少?,(215-1) = +32767,-(215-1) = -32767,(1-2-15) = +(1-1/32768),-(1-2-15) = -(1-1/32768),定点原码整数 最大正数 最小负数 定点原码小数 最大正数 最小负数,2020年8月9日星期日,63,2.1.1数据格式(3)十进制数串的表示方法,字符串形式 压缩的十进制数串形式,20

38、20年8月9日星期日,64,2.1.1数据格式(3)十进制数串的表示方法,字符串形式 每个十进制数位占用一个字节或一个符号位。 “+”、“”号对应的十进制值分别是43、45。 除保存各数位,还需要指明该数存放的起始地址和总位数; 主要用于非数值计算的应用领域。,2020年8月9日星期日,65,2.1.1数据格式(3)十进制数串的表示方法,压缩的十进制数串形式 采用BCD码表示,一个字节可存放两个十进制数位; 它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。 用特殊的二进制编码表示数据正负,如1100正、1101负,2020年8月9日星期日,66,2.1

39、.3 字符与字符串的表示方法,ASCII码(美国国家信息交换标准字符码) 包括128个字符,共需7位编码; ASCII码规定:最高位为0,余下7位作为128个字符的编码。 最高位的作用:奇偶校验;扩展编码。 字符串 指连续的一串字符, 每个字节存一个字符。 当存储字长为2、或4个字节时,在同一个存储单元中; 可按从低位字节向高位字节的顺序存放字符串的内容; 或按从高位字节向低位字节的次序顺序存放字符串的内容。,2020年8月9日星期日,67,2.1.4 汉字的表示方法,汉字从输入计算机到汉字输出基本经过三个阶段 汉字的输入编码 目的:直接使用西文标准键盘把汉字输入到计算机 。 分类:主要有数字

40、编码、拼音码 、字形编码三类。 汉字内码 用于汉字信息的存储、交换、检索等操作的机内代码 汉字内码用两个字节表示。为区分汉字字符与英文字符, 将汉字国标码的每个字节的最高位置1, 作为汉字机内码 汉字字模码 用点阵表示的汉字字形代码,用于汉字的输出。,汉字字形库 一般,汉字用点阵方式表示其外形, 即 汉字字模。 不管汉字的笔划多少,都可在同样的方块中书写,从而把方块分割为许多小方块,组成一个点阵,每个小方块就是点阵中的一个点,即二进制的一个位。每个点由0和1表示“白”和“黑”两种颜色。用这样的点阵就可输出汉字。存储在计算机中的汉字和符号的外形集合称为汉字库。,2020年8月9日星期日,68,2

41、020年8月9日星期日,69,中文编码,字符代码化(输入),数字码 拼音码 字形码,2020年8月9日星期日,70,汉字字模码,2.1.5 校验码(数据校验),数据校验的原因:为减少和避免错误信息的形成、存储、传送中发生的错误, 除需提高硬件本身的可靠性外, 还要在数据编码上想办法。数据校验码就是一种有效的方法。 数据校验码是指能发现错误或能自动纠正错误的数据编码, 又叫“检错纠错编码”。 数据校验码的码距是衡量两个编码相异程度大小的单位, 码距为1, 即表示两个码字间最少只有1个二进制位不同(如0000与1000之间), 这种编码无检错能力。,0000 0001 0010 0011 0100

42、 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111,2.1.5 校验码(数据校验),数据校验码的检验原理是:在编码中, 除合法的码字外,再加上一些非法的码字, 当某个合法码字出现错误时,就变成非法码字。合理安排非法码字的数量和编码规则, 能达到纠错的目的。 对于码距2的数据校验码开始具有检错能力。码距越大, 检错、纠错的能力就越强, 且检错能力总是大于或等于纠错能力。,2020年8月9日星期日,73,码距及作用,设用四位二进制表示16种状态 16种编码都用到了,此时码距为1; 任何一种状态的四位码中的一位或几位出错,就变成另一个合法码

43、; 无查错能力。 若用四位二进制表示8个状态 只用其中的8种编码,而把另8种编码作为非法编码; 可使码距扩大为2; 注意:并不是任选8种编码都可扩大码距;,2020年8月9日星期日,74,校验码的类型,奇偶校验码 判断数据中1的个数,设置1位校验位; 分奇校验和偶校验两种,只能检错,无纠错能力; 海明校验码 在奇偶校验的基础上增加校验位而得; 具有检错和纠错的能力; 循环冗余校验码(CRC) 通过模2的除法运算建立数据信息和校验位之间的约定关系; 具有很强的检错纠错能力。,2020年8月9日星期日,75,校验过程:,有效 信息,校验码 编码器,校 验 码,校验位,校 验 码,发送 /写 /存,

44、接收 /读 /取,有 效 信 息,校 验 位,有 效 信 息,校 验 位,校验码 译码器,正确,错误,输出,奇偶校验码概念,奇偶校验码是一种最简单而有效的数据校验方法。 实现方法: 在每个被传送码的左边或右边加上1位奇偶校验位0或1, 若采用奇校验位, 只需把每个编码中1的个数凑成奇数; 若采用偶校验位, 只要把每个编码中1的个数凑成偶数。 检验原理: 码距为1的二进制码加上奇偶校验位就变成码距为2的奇偶校验码, 这种编码能发现1个或奇数个错, 但因码距较小, 不能实现错误定位。,2020年8月9日星期日,77,奇偶校验码概念,奇偶校验原理 在数据中增加1个冗余位,使码距由1增加到2; 如果合

45、法编码中有奇数个位发生了错误,就将成为非法代码。 增加的冗余位称为奇偶校验位。 校验的类型 偶校验:每个码字(包括校验位)中1的数目为偶数。 奇校验:每个码字(包括校验位)中1的数目为奇数。 校验过程 发送端:按照校验类型,在发送数据后添加校验位P; 接收端:对接收到的数据(包括校验位)进行同样类型的校验,决定数据传输中是否存在错误;,2020年8月9日星期日,78,奇偶校验码校验原理,偶校验:在接收端求校验位 P=D7D6D5D4D3D2 D1 D0 P 若P0,则无错;若P1,则有错。 奇校验:在接收端求校验位 P=D7D6D5D4D3D2 D1 D0 P 若P1,则无错;若P0,则有错。

46、 电路实现: 一般采用异或电路得到校验位。,1010 1011,求校验码,偶校验码 1010 1011 1,奇校验码 1010 1011 0,2020年8月9日星期日,79,接收端,字,校验位,校验码,例1: 数据 0010 0001,奇校验码,0010 0001,1,偶校验码,0010 0001,0,例2:数据 : 0111 0101,偶校验码,0111 0101,1,发送端,(门电路),0110 0101,1,出错!,奇偶校验码 例题(1/2),2020年8月9日星期日,80,例3:数据 : 0111 0101,奇校验码,0111 0101,0,发送端,(门电路),0110 0111,0,

47、接收端,正确,奇偶校验只能发现 奇数个错误,且不能 纠正错误!,奇偶校验码例题(1/2),已经错了,但是并未检 查出来!,奇偶校验,对奇偶校验码的评价:它能发现一位或奇数个位出错,但无错误定位和纠错能力。尽管奇偶校验码的检错能力较低,但对计算机内存出错概率统计, 其中7080是1位错误, 另因奇偶校验码实现简单, 故它还是一种应用最广泛的校验方法。 实际应用中, 多采用奇校验, 因奇校验中不存在全“0”代码, 在某些场合下更便于判别。,2020年8月9日星期日,81,2020年8月9日星期日,82,CRC校验(自学了解),CRC的工作方法 在发送端产生一个循环冗余码,附加在信息位后面一起发送到

48、接收端; 接收端收到的信息按发送端形成循环冗余码同样的算法进行校验; 若无错,则接收;若有错,需重发。 CRC的特点 可检测出所有奇数位错; 可检测出所有双比特的错; 可检测出所有小于、等于校验位长度的突发错。 CRC码的信息字段和校验字段的长度可以任意选定。,2020年8月9日星期日,83,2.2 定点加法、减法运算,2.2.1 补码加法 2.2.2 补码减法 2.2.3 溢出概念与检验方法 2.2.4 基本的二进制加法、减法器,2020年8月9日星期日,84,2.2.1 补码加法,补码加法运算基本公式 定点整数: x+y补 x补 + y补 (mod 2n+1)定点小数: x+y补 x补 +

49、 y补 (mod 2) 证明 (1)证明依据:补码的定义(以定点小数为例) (2)证明思路:分三种情况。 (a) x、y均为正值(0,0) (b) x、y一正一负(0,0 或者0) (c) x、y均为负值(0,0),2020年8月9日星期日,85,补码加法公式证明(1/2),证明: (a)0,0 补补补(mod 2) (b)0,0 x补=2+x , y补=2+y x补+ y补= 2+x+2+y =2+ (2+x+y) = 2+x+y补 (mod 2) = x+y补,2020年8月9日星期日,86,补码加法公式证明(2/2),(c)0,0 (0的证明与此相同) x补=x , y补=2+y x补+

50、 y补= x+2+y =2+ (x+y) 当x+y0时,2+(x+y) 2 ,进位2必丢失; 因(x+y) 0 ,故x补+y补= x+y =x+y补 (mod 2) 当x+y0时,2+(x+y) 2 因(x+y) 0 ,故x补+ y补= 2+(x+y) =x+y补 (mod 2),2020年8月9日星期日,87,定点数补码加法举例,例11 +1001, +0101, 求。 解: 补0 1001, 补0 0101 补 0 1001 补0 0101 补 0 1110 所以1110,例12 x1011, 0101, 求。 解: 补0 1011, 补1 1011 补0 1011 补1 1011 补 1

51、0 0110 所以+ 0110,2020年8月9日星期日,88,2.2.2 补码减法,补码减法运算基本公式 定点整数:x - y补x补 - y补x补 + -y补 (mod 2n+1) 定点小数:x - y补x补 - y补x补 + -y补 (mod 2) 证明:只需要证明 补补 已证明x+y补 x补 + y补 ,故y补x+y补x补 又xy补 x补 + y补 ,故y补xy补x补 可得y补 + y补x+y补+ xy补x补 x补 x + y + xy补x补 x补 x + x补x补 x补0 补等于补的各位取反,末位加1。,2020年8月9日星期日,89,定点数补码减法举例例13 已知1 1110,2 +

52、 1101, 求:1补,1补,2补,2补。,解: 1补 1 0010 1补 1补1 0 11010 00010 1110 2补 0 1101 2补2补1 1 00100 00011 0011,注意课本上的错误!,注意课本上的错误!,2020年8月9日星期日,90,定点数补码减法举例 例14 1101,0110,求。,解: 补0 1101,补0 0110,补1 1010 补 补补 0 1101 1 1010 10 0111 0 0111 0111,0 1101,) 1 1010,1 0 0111,2020年8月9日星期日,91,2020年8月9日星期日,91,定点数补码加减法运算,基本公式 定点

53、整数:x y补 x补 + y补 (mod 2n+1) 定点小数:x y补 x补 + y补 (mod 2) 定点数补码加减法运算 符号位和数值位可同等处理; 只要结果不溢出,将结果按2n+1或2取模,即为本次运算结果。,2020年8月9日星期日,92,例 设机器字长为8位,补1010 0011, 补0010 1101 ,求xy。,解: 补1101 0011 补 补补 1010 0011 1101 0011 1 0111 0110 0111 0110 118,1010 0011,) 1101 0011,1 0111 0110,x= 93,y= +45 计算过程中,产生了溢出! 9345=-138

54、128,2020年8月9日星期日,93,2.2.3 溢出概念与检测方法,溢出 在定点数机器中,数的大小超出了定点数能表示的范围。 上溢 数据大于机器所能表示的最大正数; 下溢 数据小于机器所能表示的最小负数; 例如,4位补码表示的定点整数,范围为-8,+7 若x = 5,y = 4,则x+y产生上溢 若x = -5,y = -4,则x+y产生下溢 若x = 5,y = -4,则x-y产生上溢,2020年8月9日星期日,93,2020年8月9日星期日,94,例题,例15 +0.1011, +0.1001,求。 解:补0.1011 补0.1001 补0.1011 补0.1001 补1.0100,例

55、16 -0.1101, -0.1111,求。 解:补1.0011 补1.0001 补1.0011 补1.0001 补 0.0101,正数+正数=负数,负数+负数=正数,溢出!,溢出判别方法,直接判别法 变形补码判别法 进位判别法,2020年8月9日星期日,95,2020年8月9日星期日,96,溢出判别方法直接判别法,方法: 同号补码相加,结果符号位与加数相反; 异号补码相减,结果符号位与减数相同; 特点:硬件实现较复杂; 举例: 若x补=0101,y补=0100,则x+y补=1001 若x补=1011,y补=1100,则x+y补=0111 若x补=0101,y补=1100 ,则x-y补=100

56、1,上溢,下溢,上溢,2020年8月9日星期日,97,溢出判别方法变形补码判别法,变形补码,也叫模4补码:采用双符号位表示补码 判别方法: 特点:硬件实现简单,只需对结果符号位进行异或 举例: 若x补=00101,y补=00100,则x+y补=01001 若x补=11011,y补=11100,则x+y补=10111 若x补=00101,y补=11100 ,则x-y补=01001,上溢,下溢,上溢,2020年8月9日星期日,98,2020年8月9日星期日,98,溢出判别方法进位判别法,0101,) 0100,1001,1,0,0001,) 0100,0101,0,0,V=01=1,V=00=0,

57、判别方法: 最高数值位的进位与符号位的进位是否相同;采用单符号位法。当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢。 判别公式 溢出标志V=Cf Cn-1 ,其中Cf为符号位产生的进位, Cn-1为最高数值位产生的进位。 举例:,2020年8月9日星期日,99,规格化操作有两种:“左规”和“右规”。若 采用变形补码表示尾数,则当结果的尾数出现 11.1xxxx或00.0 xxxx的形式时,需将尾数 左移1位,阶码减1,直到尾数为规格化形式为 止,这个过程称为“左规”。当浮点运算结果 的尾数出现01.xxxx或10.xxxx的形式时, 并不一定溢出,

58、应先将尾数右移1位,阶码加1, 然后判断阶码是否溢出,这个过程称为“右 规”。,2020年8月9日星期日,100,回顾逻辑门图形符号,2.2.4 基本的二进制加法/减法器,2020年8月9日星期日,101,2020年8月9日星期日,102,2.2.4 基本的二进制加法/减法器,一位二进制数据的半加器: 加数:Ai、Bi 结果:Si(和) Ci+1(本位向高位的进位) 一位半加器示意图:,一位二进制数据的全加器: 加数:Ai、Bi Ci(低位向本位的进位) 结果:Si(和) Ci+1(本位向高位的进位) 一位全加器示意图:,2020年8月9日星期日,103,一位二进制数据的全加器的逻辑结构,全加运算的真值表如右所示: 两个输出端的逻辑表达式 SiAiBiCi Ci1AiBiBiCiCiAi = AiBiCi(BiAi ) 全加器逻辑结构:,3T+1T+1T,3T+3T,2020年8月9日星期日,104,一位二进制数据的全加器的逻辑结构,全加运算的真值表如右所示: 两个输出端的逻辑表达式 SiAiBiCi Ci1AiBiBiCiCiAi 全加器逻辑结构:,3T+1T+1T,3T+3T,延迟时间 由Ai、Bi到Si的延迟 时间为6T 由Ai、Bi到Ci+1到的延迟 时间为5T 由Ci到Ci+1的延迟时间为 2T,2

温馨提示

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

评论

0/150

提交评论