资源预览内容
第1页 / 共208页
第2页 / 共208页
第3页 / 共208页
第4页 / 共208页
第5页 / 共208页
第6页 / 共208页
第7页 / 共208页
第8页 / 共208页
第9页 / 共208页
第10页 / 共208页
亲,该文档总共208页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第2章 运算方法和运算器22 七月 20242目录目录2.0数据的类型数据的类型2.1数据与文字的表示方法数据与文字的表示方法(掌握)(掌握)2.2定点加法、减法运算定点加法、减法运算(掌握)(掌握)2.3定点乘法运算定点乘法运算(掌握)(掌握)2.4定点除法运算定点除法运算(掌握)(掌握)2.5定点运算器的组成定点运算器的组成(了解)(了解)2.6浮点运算方法和浮点运算器浮点运算方法和浮点运算器(理解)(理解)22 七月 20243学习要求学习要求l掌握定点和浮点数的表示方法,表示范围;掌握定点和浮点数的表示方法,表示范围;l掌握定点数的补码加减法、常用的乘除法运算方法;掌握定点数的补码加减法、常用的乘除法运算方法;l掌握浮点数的加减运算方法;掌握浮点数的加减运算方法;l掌握数据校验的方法;掌握数据校验的方法;l理解溢出判断方法;理解溢出判断方法;l清楚运算器部件的组成结构及设计方法。清楚运算器部件的组成结构及设计方法。22 七月 202442.0数据的类型(数据的类型(1/2)l按数制分:按数制分:十进制:在微机中直接运算困难;十进制:在微机中直接运算困难;二进制:占存储空间少,硬件上易于实现,易于运算;二进制:占存储空间少,硬件上易于实现,易于运算;十六进制:方便观察和使用;十六进制:方便观察和使用;二二-十进制:十进制:4位二进制数表示位二进制数表示1位十进制数,转换简单。位十进制数,转换简单。l按数据格式分:按数据格式分:真值:没有经过编码的直观数据表示方式,其值可带正负号真值:没有经过编码的直观数据表示方式,其值可带正负号(+、-),任何数制均可;,任何数制均可;机器数:符号数字化后的数值机器数:符号数字化后的数值(包括正负号的表示包括正负号的表示),一般位数,一般位数固定固定(8、16、32),不能随便忽略任何位置上的,不能随便忽略任何位置上的0或或1;22 七月 202452.0数据的类型(数据的类型(2/2)l按数据的表示范围分:按数据的表示范围分:定点数:小数点位置固定,数据表示范围小;定点数:小数点位置固定,数据表示范围小;浮点数:小数点位置不固定,数据表示范围较大。浮点数:小数点位置不固定,数据表示范围较大。l按能否表示负数分:按能否表示负数分:无符号数:所有均为表示数值,直接用二进制数表示;无符号数:所有均为表示数值,直接用二进制数表示;有符号数:有正负之分,最高位为符号位,其余位表示有符号数:有正负之分,最高位为符号位,其余位表示数值。数值。u按编码不同又可分为原码、反码、补码、移码按编码不同又可分为原码、反码、补码、移码22 七月 202462.1数据与文字的表示方法数据与文字的表示方法l2.1.1数据格式数据格式l2.1.2数的机器码表示数的机器码表示l2.1.3字符与字符串的表示方法字符与字符串的表示方法l2.1.4汉字的表示方法汉字的表示方法l2.1.5校验码校验码22 七月 202472.1.1数据格式数据格式计算机在数的表示方式时,应该考虑一下几个因素计算机在数的表示方式时,应该考虑一下几个因素:l表示的数据类型(符号、小数点、数值)表示的数据类型(符号、小数点、数值)l数值的范围数值的范围l数值精度数值精度l存储、处理、传送的硬件代价存储、处理、传送的硬件代价计算机常用的数据表示格式有两种:计算机常用的数据表示格式有两种:l定点表示:小数点位置固定定点表示:小数点位置固定l浮点表示:小数点位置不固定浮点表示:小数点位置不固定22 七月 202482.1.1数据格式数据格式定点数定点数一、定点表示法一、定点表示法所有数据的小数点位置固定不变所有数据的小数点位置固定不变u由于定点数在约定机器中所有的小数点位置是由于定点数在约定机器中所有的小数点位置是固定不变固定不变的,所以小的,所以小数点数点“.”在数据表示中省略在数据表示中省略了。了。理论上小数点位置可以任意,但实际上将数据表示有两种方理论上小数点位置可以任意,但实际上将数据表示有两种方法(小数点位置固定法(小数点位置固定-定点表示法定点表示法/定点格式):定点格式):u纯小数纯小数u纯整数纯整数定点数表示:定点数表示:u带符号数带符号数u不带符号数不带符号数22 七月 202492.1.1数据格式数据格式定点数定点数l假设用假设用n+1位字来表示一个定点数位字来表示一个定点数x,对于任意定点数对于任意定点数x=xnxn-1xn-2x2x1x0 , ,在定点机中在定点机中如下图表示:如下图表示:xnxn-1xn-2x2x1x0 符号位符号位数值数值位位22 七月 202410l定点数:小数点固定在某一位置的数据;定点数:小数点固定在某一位置的数据;纯小数:纯小数:u表示形式表示形式(原码表示)(原码表示)有符号数有符号数x=xnxn-1xn-2x1x0|x|1-2-n;xn为符号位为符号位无符号数无符号数x=xnxn-1xn-2x1x00x1-2-n;xn为符号位即为符号位即xn=0u数据表示范围数据表示范围0.00=0|x|1-2-n=0.11纯整数:纯整数:u表示形式表示形式有符号数有符号数x=xnxn-1x1x0|x|2n-1;xn为符号位为符号位无符号数无符号数x=xnxn-1x1x00x2n+1-1;xn为数值位为数值位l注意:小数点的位置是机器约定好的,并没有实际的保存。注意:小数点的位置是机器约定好的,并没有实际的保存。xnxn-1xn-2xn-3x1x0xnxn-1xn-2x1x02.1.1数据格式数据格式定点数定点数设采用设采用n+1位数据位数据22 七月 202411l定点数:最值情况定点数:最值情况纯小数:纯小数:(原码表示时最值情况)(原码表示时最值情况)u表示形式表示形式u最大正数最大正数u最大正数值为:最大正数值为:1-2-n,u最小正数最小正数u最小正数的值为:最小正数的值为:2-n2.1.1数据格式数据格式定点数定点数设采用设采用n+1位数据位数据202-12-22-32-(n-1)2-n202-12-22-32-(n-1)2-n01111100000101111122 七月 202412l定点数:最值情况定点数:最值情况纯小数:纯小数:(原码表示时最值情况)(原码表示时最值情况)u表示形式表示形式u绝对值最大负数绝对值最大负数u绝对值最大负数值为:绝对值最大负数值为:-(1-2-n)2.1.1数据格式数据格式定点数定点数设采用设采用n+1位数据位数据202-12-22-32-(n-1)2-n11111122 七月 202413l定点数:最值情况定点数:最值情况纯小数:纯小数:(补码表示时最值情况)(补码表示时最值情况)u表示形式表示形式u绝对值最大负数绝对值最大负数u绝对值最大负数值为:绝对值最大负数值为:-1通过2.2节公式可推出此结论2.1.1数据格式数据格式定点数定点数设采用设采用n+1位数据位数据202-12-22-32-(n-1)2-n10000022 七月 202414l定点数:最值情况定点数:最值情况纯整数:纯整数:u原码表示的绝对值最大负数原码表示的绝对值最大负数原码表示的绝对值最大负数值为:-(2n-1)u补码表示的绝对值最大的负数补码表示的绝对值最大的负数补码表示的绝对值最大的负数值为:-2n2.1.1数据格式数据格式定点数定点数设采用设采用n+1位数据位数据2n2n-12n-22n-321201111111000002n2n-12n-22n-3212022 七月 2024152.1.1数据格式数据格式4、定点表示法的特点、定点表示法的特点定点数表示数的范围受字长限制,表示数的范围有限定点数表示数的范围受字长限制,表示数的范围有限;定点表示的精度有限定点表示的精度有限机器中,常用定点纯整数表示机器中,常用定点纯整数表示;如果用定点表示,则如何表示实数(包括小数和整数)如果用定点表示,则如何表示实数(包括小数和整数)呢?呢?-引入浮点引入浮点22 七月 202416科学计数法的表示科学计数法的表示l一个十进制数可以表示成不同的形式:一个十进制数可以表示成不同的形式:l同理,一个二进制数也可以有多种表示:同理,一个二进制数也可以有多种表示:其中2+100,2-100是比例因子,存储时将有效数字和比例因子分别存储,即分别存储数的表示范围与精度,比例因子变化即数的小数点变化,因此称为浮点表示法。22 七月 2024172.1.1数据格式数据格式浮点数浮点数l浮点数:小数点位置可变,形如浮点数:小数点位置可变,形如科学计数法科学计数法中的数据表示。中的数据表示。l浮点数格式定义:浮点数格式定义:N=ReMM:尾数:尾数(mantissa),是一个,是一个纯小数纯小数,表示数据的全部有效数,表示数据的全部有效数位,决定着数值的精度;位,决定着数值的精度;R:基数:基数(radix),可以取,可以取2、8、10、16,表示当前的数制;,表示当前的数制;u微机中,一般默认为微机中,一般默认为2,隐含表示。,隐含表示。e:阶码阶码(exponent),是一个,是一个整数整数,用于指出小数点在该数,用于指出小数点在该数中的位置,中的位置,决定着数据数值的大小决定着数据数值的大小。l机器数的一般表示形式(机器数的一般表示形式(为了方便浮点数比较大小,一般采用第二种方法为了方便浮点数比较大小,一般采用第二种方法)阶符阶符阶码阶码数符数符尾数尾数数符数符阶码阶码(含阶符含阶符)尾数尾数22 七月 202418浮点数的浮点数的IEEE754标准表示标准表示l为便于软件移植,按照为便于软件移植,按照IEEE754标准,实际机器内标准,实际机器内32位浮点位浮点数和数和64位浮点数的标准格式如下:位浮点数的标准格式如下:SEM0222330312323位尾数,仅为数值部分位尾数,仅为数值部分8 8位阶码,包括阶符位阶码,包括阶符1 1位数符位数符3232位浮点数位浮点数SEM0515262635252位尾数,仅为数值部分位尾数,仅为数值部分1111位阶码,包括阶符位阶码,包括阶符1 1位数符位数符6464位浮点数位浮点数22 七月 20241932位浮点数的位浮点数的IEEE754标准表示标准表示(采用下面的表示方法)(采用下面的表示方法)l数符数符S:表示浮点数的符号,占表示浮点数的符号,占1 1位,位,0 0正数、正数、1 1负数;负数;l尾数尾数M:2323位,原码纯小数表示,小数点在尾数域的最前面;位,原码纯小数表示,小数点在尾数域的最前面;由于原码表示的规格化浮点数要求,由于原码表示的规格化浮点数要求,最高数值位始终为最高数值位始终为1,因此该标准中隐,因此该标准中隐藏最高数值位藏最高数值位(即数值即数值1),标准浮点数的存储在尾数中隐含存储着一个,标准浮点数的存储在尾数中隐含存储着一个1,因此在计算尾数的真值时比一般形式要多一个整数因此在计算尾数的真值时比一般形式要多一个整数1。尾数的实际值为。尾数的实际值为1.M;l阶码阶码E:8 8 位,采用有偏移值的移码表示,移码域值大则其指数也大;位,采用有偏移值的移码表示,移码域值大则其指数也大;移移127码,即码,即E=e+127,E的的8位二进制数即为移位二进制数即为移127码的编码;码的编码;l浮点数的真值:浮点数的真值:N=(-1)S(1.M)2E-127数符数符S阶码阶码E尾数尾数M22 七月 202420IEEE754标准格式标准格式(64位格式)位格式)其真值表示为:其真值表示为:x=(1)S(1.M)2E1023eE102322 七月 202421浮点数的规格化浮点数的规格化l浮点数的一般表示浮点数的一般表示同一个浮点数的表示是不唯一的。如同一个浮点数的表示是不唯一的。如0.1101可表示为可表示为0.0110121,也可表示为,也可表示为1.1012-1。机器数的表示不同,不利于运算机器数的表示不同,不利于运算l规格化的目的规格化的目的保证浮点数表示的唯一性;保证浮点数表示的唯一性;为了提高数据的精度为了提高数据的精度22 七月 202422浮点数的规格化浮点数的规格化l规格化要求规格化要求按国际电子电气工程师协会规定的标准,浮点数的尾数要用原按国际电子电气工程师协会规定的标准,浮点数的尾数要用原码表示,即符号位码表示,即符号位:0表示正,表示正,1表示负表示负当尾数的值不为当尾数的值不为0时,规定其绝对值应时,规定其绝对值应0.5,也就是最高位为,也就是最高位为1u否则要修改阶码同时移动小数点的位置,使其满足这一要求,这个过程否则要修改阶码同时移动小数点的位置,使其满足这一要求,这个过程称为浮点数的称为浮点数的规格化规格化。l规格化处理:规格化处理:尾数向左移尾数向左移n位位(小数点右移小数点右移),同时阶码减,同时阶码减n;尾数向右移尾数向右移n位位(小数点左移小数点左移),同时阶码加,同时阶码加n。左规左规右规右规22 七月 202423l规格化浮点数实际运算时规格化浮点数实际运算时既然非既然非0值浮点数的尾数数值最高位必定为值浮点数的尾数数值最高位必定为1,则在保存浮则在保存浮点数到内存前,点数到内存前,通过尾数右移通过尾数右移,强行把该位去掉强行把该位去掉,用同样多的用同样多的尾数位就能多存一位二进制数,有利于提高数据表示精度,尾数位就能多存一位二进制数,有利于提高数据表示精度,称这种处理方案使用了隐藏位技术。当然,在取回这样的浮称这种处理方案使用了隐藏位技术。当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。点数到运算器执行运算时,必须先恢复该隐藏位。浮点数的规格化浮点数的规格化22 七月 202424浮点数的规格化浮点数的规格化l尾数用尾数用原码原码表示时表示时尾数最高数值位为尾数最高数值位为1;尾数形如尾数形如0.1(正);或(正);或1.1(负);(负);例如,例如,0.01125要规格化则变为要规格化则变为0.1124;0.01125要规格化则变为要规格化则变为1.1124;l尾数用尾数用补码补码表示时表示时尾数最高数值位和尾数符号位相反;尾数最高数值位和尾数符号位相反;尾数形如尾数形如0.1(正);或(正);或1.0(负)(负)例如,例如,0.01125要规格化,则变为要规格化,则变为0.1124;0.01125要规格化,则变为要规格化,则变为1.0124;22 七月 202425 阶码阶码E E的移码表示法(一般浮点数表示方法)的移码表示法(一般浮点数表示方法)l移码通常用来表示浮点数的阶码,由真值加一个移码通常用来表示浮点数的阶码,由真值加一个固定的常固定的常数数生成,这个生成,这个固定的常数固定的常数称为称为偏移量偏移量。 设定点整数移码的形式为设定点整数移码的形式为x xm mx x2 2x x1 1 x x0 0,则移码定义为:,则移码定义为: xx移移=2=2m m+x -2+x -2m mxx2 2m m 注意:注意:m m为有效数据位位数为有效数据位位数 xx移移是机器数,是机器数,x x是真值是真值,2 2m m是一个固定的偏移量,移是一个固定的偏移量,移码共有码共有m+1m+1位。位。例、某浮点数阶码例、某浮点数阶码8 8位,含一位符号位,移码表示。当位,含一位符号位,移码表示。当阶码阶码x = -0111 1111x = -0111 1111,则:,则: xx移移 = = 2 27 7 - 0111 1111 =- 0111 1111 =128128-127 =0000 0001-127 =0000 000122 七月 202426 阶码阶码E E的移码表示法的移码表示法l移码通常用来表示浮点数的阶码,由真值加一个移码通常用来表示浮点数的阶码,由真值加一个固定的常固定的常数数生成,这个生成,这个固定的常数固定的常数称为称为偏移量偏移量。 例如例如xx移移 = = 2 27 7 - 0111 1111 =- 0111 1111 =128128-127 =0000 0001-127 =0000 0001l注意在一般的浮点数表示形式,阶码用移码表示时(注意在一般的浮点数表示形式,阶码用移码表示时(8 8位位阶码)偏移量是阶码)偏移量是128128,但在浮点数,但在浮点数754754标准表示时,阶码用标准表示时,阶码用移码表示时偏移量是移码表示时偏移量是127127l在实际的使用中,如果没有任何的特殊说明,则默认为浮在实际的使用中,如果没有任何的特殊说明,则默认为浮点数的一般表示形式。点数的一般表示形式。22 七月 2024272.1.3数的定点表示与浮点表示数的定点表示与浮点表示一、浮点表示法一、浮点表示法我们在看一看下面的表:我们在看一看下面的表:【X】移移=2m+X,128真值真值原码原码反码反码补码补码移码移码-128-127.-1-0+0+1.+12710000000000000001111111110000000100000010000000101111111100000011111111011111111100000001111111100000001000000000000000000000000000000010000000000000010000000100000001100000010111111101111111011111111111111122 七月 202428浮点数的表示范围浮点数的表示范围l在浮点数的表示范围中,有两种情况被称为机器零:在浮点数的表示范围中,有两种情况被称为机器零:(1)若浮点数的尾数为零,无论阶码为何值;)若浮点数的尾数为零,无论阶码为何值;(2)当阶码的值遇到比它能表示的最小值还要小时)当阶码的值遇到比它能表示的最小值还要小时(阶码负溢出),无论其尾数为何值(阶码负溢出),无论其尾数为何值机器零机器零机器零:浮点数的尾数为零或阶码为最小数22 七月 202429浮点数的表示范围浮点数的表示范围0最大最大负数负数最小最小正数正数最小最小负数负数最大最大正数正数下溢区下溢区上溢区上溢区上溢区上溢区负数区负数区正数区正数区尾数尾数负的最小值负的最小值负的最大值负的最大值 正的最小值正的最小值 正的最大值正的最大值阶码阶码正的最大值正的最大值负的最小值负的最小值 负的最小值负的最小值 正的最大值正的最大值l浮点数的溢出:阶码溢出浮点数的溢出:阶码溢出上溢:阶码大于所能表示的最大值;上溢:阶码大于所能表示的最大值;下溢:阶码小于所能表示的最小值;下溢:阶码小于所能表示的最小值;l机器零:机器零:尾数为尾数为0,或阶码小于所能表示的最小值;,或阶码小于所能表示的最小值;22 七月 202431IEEE754标准的标准的32位数据表示位数据表示lIEEE754标准中的阶码标准中的阶码E正零、负零正零、负零uE与与M均为零,正负之分由数据符号确定;均为零,正负之分由数据符号确定;正无穷、负无穷正无穷、负无穷uE为全为全1,M为全零,正负之分由数据符号确定;为全零,正负之分由数据符号确定;阶码阶码E的其余值(的其余值(0000000111111110)为规格化数据;)为规格化数据;uE为为1254,真正的指数真正的指数e的范围为的范围为-126+127l为避免浮点数下溢,允许采用为避免浮点数下溢,允许采用比最小规格化数还小的非规格化比最小规格化数还小的非规格化数数来表示,但此时尾数来表示,但此时尾数M前的隐含位为前的隐含位为0,而不是,而不是1。E=00000000,M=00000000E=11111111,M=00000000000000001111111122 七月 2024330110111519【例例1】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数为为10位(含符号位),阶码采用补码表示,尾数位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。采用原码表示,分析其浮点数表示范围。l最大正数最大正数最大正数为最大正数为0.11120111即(即(129)231该浮点数即为该浮点数即为规格化规格化数形式;数形式; 阶码22 七月 202434【例例1】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数为为10位(含符号位),阶码采用补码表示,尾数位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。采用原码表示,分析其浮点数表示范围。l最小正数最小正数非规格化数形式非规格化数形式u最小正数为最小正数为0.0012100u即即292(25)=292-32规格化数形式规格化数形式u最小正数为最小正数为0.12100u212(25)233100010015191000001151922 七月 202435【例例1】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数为为10位(含符号位),阶码采用补码表示,尾数位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。采用原码表示,分析其浮点数表示范围。l最小负数最小负数最小负数为最小负数为0.112011即(即(129)2(251)=(129)231该浮点数即为该浮点数即为规格化规格化数形式;数形式;0111111m1n22 七月 202436【例例1】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数为为10位(含符号位),阶码采用补码表示,尾数位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。采用原码表示,分析其浮点数表示范围。l最大负数最大负数非规格化数形式非规格化数形式u最大负数为最大负数为0.0012100u即即292(25)=292-32规格化数形式规格化数形式u最大负数为最大负数为0.12100u即即212(25)=2-123210011001m1n10010011m1n22 七月 202437【例例2】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数为为10位(含符号位),阶码和尾数均采用补码表位(含符号位),阶码和尾数均采用补码表示,分析其规格化浮点数表示范围。示,分析其规格化浮点数表示范围。l最大正数最大正数阶码最大、尾数最大阶码最大、尾数最大最大正数为最大正数为0.1112111(129)231l最小正数最小正数最小正数为最小正数为0.1000232即即2-32212-33注意:注意:不是不是u因为因为0.012-32不是规格化数。不是规格化数。01101115191000100015191000001151922 七月 202438【例例2】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数为为10位(含符号位),阶码和尾数均采用补码表位(含符号位),阶码和尾数均采用补码表示,分析其规格化浮点数表示范围。示,分析其规格化浮点数表示范围。l最小的负数最小的负数最小负数为最小负数为1.000231即即231(1)=231l最大的负数最大的负数最大负数为最大负数为0.1001232即(即(29+21)232注意:因有规格化要求,不是注意:因有规格化要求,不是0111001519100101115191001111151922 七月 202439课本课本P18例例1l例例1若浮点数的若浮点数的754标准存储格式为标准存储格式为(41360000)16,求其浮,求其浮点数的十进制数值。点数的十进制数值。l解:解:(41360000)16=01000001001101100000000000000000指数指数e=E-127=1000001001111111=00000011=3尾数尾数1.M=1.01101100000000000000000=1.011011浮点数浮点数N=(-1)S(1.M)2e=(-1)0(1.011011)23 =(11.375)10数符数符S阶码阶码E尾数尾数M22 七月 202440课本课本P18例例2l例例2将将(20.59375)10转换成转换成754标准的标准的32位浮点数的二进制存位浮点数的二进制存储格式。储格式。l解:解:(20.59375)10(10100.10011)2将尾数规范为将尾数规范为1.M的形式:的形式:10100.100111.01001001124e4可得:可得:M010010011S 0E 412713110000011故,故,32位浮点数的位浮点数的754标准格式为:标准格式为:01000001101001001100000000000000(41A4C000)1622 七月 202441单精度浮点数与双精度浮点数单精度浮点数与双精度浮点数l高级语言的高级语言的float、double使用的即是使用的即是IEEE754规定的格式。规定的格式。lfloat:32位浮点值,也叫单精度浮点数(位浮点值,也叫单精度浮点数(4字节保存)字节保存)ldouble:64位浮点值,也叫双精度浮点数(位浮点值,也叫双精度浮点数(8字节保存)字节保存)l单精度浮点数的例子:单精度浮点数的例子:1位位8位位7位位8位位8位位-11000.0122 七月 202442求解技巧求解技巧l例如:将下列十进制数表示成例如:将下列十进制数表示成IEEE754格式的格式的32位浮点数二进位浮点数二进制存储形式。制存储形式。27/3211/512l求解:求解:27/32=27*(1/32)=(00011011)*2-5=1.1011*2-1u尾数:尾数:1.1011;阶码:阶码:e=-5+4=-1,E=e+127=126uIEEE754数据:数据:0011111101011000000000000000000011/512=(00001011)=1.011*2-6u尾数:尾数:1.011;阶码:阶码:e=-9+3=-6,E=e+127=121uIEEE754数据:数据:001111001011000000000000000000022 七月 202443例:将十进制数例:将十进制数-54表示成表示成二进制定点数二进制定点数(16位位)和和浮点数浮点数(16位,其中数值部分位,其中数值部分10位,阶码部分位,阶码部分4位,阶符和数符各位,阶符和数符各取取1位位),并写出它在定点机和浮点机中的机器数形式。,并写出它在定点机和浮点机中的机器数形式。l令令x=-54,则,则x=-110110l16位定点数真值表示:位定点数真值表示:x=-000000000110110定点机器数形式定点机器数形式x原原:x补补:l浮点数规格化表示:浮点数规格化表示:x=-(0.1101100000)2110浮点机器数形式浮点机器数形式x原原:x补补:非非IEEE754标准标准1000000000110110111111111100101000110;1110110000000110;1001010000022 七月 202444浙江大学考研试题浙江大学考研试题计算机储存程序的特点之一是把数据和指令都作为二进制信号计算机储存程序的特点之一是把数据和指令都作为二进制信号看待。今有一计算机字长看待。今有一计算机字长32bit,数符位是第,数符位是第31bit;单精度浮;单精度浮点数格式如图所示。点数格式如图所示。对于二进制数对于二进制数10001111111011111100000000000000表示一个补码整数,其十进制值是多少?表示一个补码整数,其十进制值是多少?表示一个无符号整数,其十进制值是多少?表示一个无符号整数,其十进制值是多少?表示一个表示一个IEEE754标准的单精度浮点数,其值是多少?标准的单精度浮点数,其值是多少?8位位23位位131302322022 七月 202445二进制数二进制数10001111111011111100000000000000表示一个补码整数,其十进制值是多少?表示一个补码整数,其十进制值是多少?n作为补码整数,其对应的原码是作为补码整数,其对应的原码是11110000000100000100000000000000n十进制值是十进制值是-(230+229+228+220+214)表示一个无符号整数,其十进制值是多少?表示一个无符号整数,其十进制值是多少?n作为无符号整数,其十进制值是作为无符号整数,其十进制值是231+227+226+225+224+223+222+221+219+218+217+216+215+21422 七月 202446二进制数二进制数10001111111011111100000000000000作为作为IEEE754标准的单精度浮点数标准的单精度浮点数n阶码阶码E是是00011111n指数指数e阶码阶码E1270001111101111111-1100000B-96Dn尾数尾数M=11011111100000000000000n则则1.M =1.11011111100000000000000=1.110111111 单精度浮点数值为:单精度浮点数值为:X(-1)s1.M2e-(1.110111111)2-96-(0.1110111111)2-95-0.31152-9522 七月 2024472.1.2数的机器码表示数的机器码表示l重点:重点:1、原码、补码、移码的表示形式、原码、补码、移码的表示形式2、补码的定义、补码的定义3、原码、补码、移码的表示范围、原码、补码、移码的表示范围22 七月 2024481、原码表示法、原码表示法定义定义l定义:定义:定点小数:定点小数:x原原定点整数:定点整数:x原原l举例:举例:+0.110原原0.110-0.110原原1-(-0.110)=1.110+110原原0110-110原原23-(-110)1000+110=1110x1x01-x=1+|x|0x-1x2nx02n-x=2n+|x|0x-2n实际机器中保存时实际机器中保存时并不保存小数点并不保存小数点22 七月 2024491、原码表示法、原码表示法特点特点l0有两种表示法有两种表示法+0原原=0000;-0原原=1000l数据表示范围数据表示范围定点小数:定点小数:-1X1定点整数定点整数:-2nX2n(若数值位(若数值位n=3即:即:-8Xx02+x=2-|x|0x-1x2nx02n+1+x=2n+1-|x|0x-2nx为为n+1位位(mod2)(mod2n+1)实际机器中保存时并实际机器中保存时并不保存小数点不保存小数点22 七月 2024552、补码表示法、补码表示法特点特点l0有唯一的表示法有唯一的表示法-0补补24+(-0)mod240000+0补补l数据表示范围数据表示范围定点小数:定点小数:-1X1定点整数定点整数:-2nX2n(若(若n=3,则,则-8X8)l加减运算规则加减运算规则XY补补X补补Y补补(mod2)只要结果不溢出,可将补码符号位与数值位一起参与运算。只要结果不溢出,可将补码符号位与数值位一起参与运算。lx补补补补x原原l补码除补码除2操作,可通过操作,可通过算术右移算术右移实现(实现(,符号位向右移动后符号位向右移动后,正数的话补正数的话补0,负负数补数补1,)-0.0110补补11010,则,则(-0.0110)/10补补=11101,真值为,真值为-0.0011比原码多一比原码多一个负的最小个负的最小值表示,其值表示,其编码为编码为100*0100*022 七月 202456由原码求补码由原码求补码l由原码求补码的简便原则由原码求补码的简便原则(负数负数)除符号位以外除符号位以外, ,其余各位按位取反,末位加其余各位按位取反,末位加1 1;从最低位开始,遇到的第一个从最低位开始,遇到的第一个1 1以前的各位保以前的各位保持不变,之后各位取反。持不变,之后各位取反。例:例:X原原= 1 1 0 1 1 0 1 0 0X补补= 1 0 1 0 0 11 0 0 22 七月 202457l由由X补补求求-X补补连符号位一起各位求反,末位加连符号位一起各位求反,末位加1。l例:例:X补补=1.1010101l解解:由由-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 122 七月 2024583、移码表示法、移码表示法l移码通常用于表示浮点数的阶码移码通常用于表示浮点数的阶码用定点整数形式的移码用定点整数形式的移码l定义:定义:x移移=2n+x-2nx2n注意注意n为为x的有效位数的个数的有效位数的个数l与与x补补的区别:的区别:符号位相反符号位相反l优点:优点:可以比较直观地判断两个数据的大小;可以比较直观地判断两个数据的大小;u浮点数运算时,容易进行对阶操作;浮点数运算时,容易进行对阶操作;表示浮点数阶码时,容易判断是否下溢;表示浮点数阶码时,容易判断是否下溢;真值真值补码补码移码移码-810000000-710010001-610100010000001000+100011001+7011111114位补码与移码位补码与移码22 七月 202459原、补、移码的编码形式原、补、移码的编码形式l正数:正数:原、补码的编码完全相同;原、补码的编码完全相同;补码和移码的符号位相反,数值位相同;补码和移码的符号位相反,数值位相同;l负数:负数:原码:原码:符号位为符号位为1数值部分与真值的绝对值相同数值部分与真值的绝对值相同补码:补码:符号位为符号位为1数值部分与原码各位相反,且末位加数值部分与原码各位相反,且末位加1移码:移码:符号位与补码相反,数值位与补码相同符号位与补码相反,数值位与补码相同22 七月 202460课本课本P22例例6以定点整数为例以定点整数为例,用数轴形式说明原码、反码、用数轴形式说明原码、反码、补码、移码表示范围和可能的数码组合情况。补码、移码表示范围和可能的数码组合情况。22 七月 20246122 七月 202461课本课本P22例例7将十进制真值将十进制真值(127,1,0,1,127)列表列表表示成二进制数及原码、反码、补码、移码值。表示成二进制数及原码、反码、补码、移码值。十进制真十进制真值值二进制真值二进制真值原码表示原码表示反码表示反码表示补码表示补码表示移码表示移码表示-127-111111111111111100000001000000100000001-1-0000001100000011111111011111111011111110+000000000000000000000000000000010000000-00000001000000011111111+1+000000100000001000000010000000110000001+127+111111101111111011111110111111111111111符号位符号位+0;-1数值位数值位各位取反各位取反数值位数值位末位加末位加1符号位符号位(正负数正负数)取反取反负数时负数时22 七月 202462P22例例8设机器字长设机器字长16位,定点表示,尾数位,定点表示,尾数15位,数符位,数符1位,问:位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?定点原码小数表示时,最大正数是多少?最小负数是多少?0111111111111111111111111111111101111111111111111111111111111111(215-1)=+32767-(215-1)=-32767(1-2-15)=+(1-1/32768)-(1-2-15)=-(1-1/32768)l定点原码整数定点原码整数最大正数最大正数最小负数最小负数l定点原码小数定点原码小数最大正数最大正数最小负数最小负数22 七月 2024632.1.1数据格式数据格式(3)十进制数串的表示方法十进制数串的表示方法l字符串形式字符串形式l压缩的十进制数串形式压缩的十进制数串形式22 七月 2024642.1.1数据格式数据格式(3)十进制数串的表示方法十进制数串的表示方法l字符串形式字符串形式每个十进制每个十进制数位数位占用一个字节或一个符号位。占用一个字节或一个符号位。“+”、“”号对应的十进制值分别是号对应的十进制值分别是43、45。除保存各数位,还需要指明该数存放的起始地址和总位数;除保存各数位,还需要指明该数存放的起始地址和总位数;主要用于非数值计算的应用领域。主要用于非数值计算的应用领域。00000010000000110000010100001000一个字节(一个字节(8bit8bit)22 七月 2024652.1.1数据格式数据格式(3)十进制数串的表示方法十进制数串的表示方法l压缩的十进制数串形式压缩的十进制数串形式采用采用BCD码表示,一个字节可存放两个十进制数位;码表示,一个字节可存放两个十进制数位;它比前一种形式节省存储空间,又便于直接完成十进制数的算它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。术运算,是广泛采用的较为理想的方法。 用特殊的二进制编码表示数据正负,如用特殊的二进制编码表示数据正负,如1100正、正、1101负负1000001000111100一个字节(一个字节(8bit8bit)001101111101一个字节(一个字节(8bit8bit)0000不满一字节用不满一字节用0补齐补齐22 七月 2024662.1.3字符与字符串的表示方法字符与字符串的表示方法lASCII码码(美国国家信息交换标准字符码美国国家信息交换标准字符码)包括包括128个字符,共需个字符,共需7位编码;位编码;ASCII码规定:最高位为码规定:最高位为0,余下,余下7位作为位作为128个字符的编码。个字符的编码。最高位的作用:奇偶校验;扩展编码。最高位的作用:奇偶校验;扩展编码。l字符串字符串指连续的一串字符,指连续的一串字符,每个字节存一个字符。每个字节存一个字符。当存储字长为当存储字长为2、或、或4个字节时,在同一个存储单元中个字节时,在同一个存储单元中;u可按从低位字节向高位字节的顺序存放字符串的内容可按从低位字节向高位字节的顺序存放字符串的内容;u或按从高位字节向低位字节的次序顺序存放字符串的内容。或按从高位字节向低位字节的次序顺序存放字符串的内容。22 七月 2024672.1.4汉字的表示方法汉字的表示方法l汉字从输入计算机到汉字输出基本经过三个阶段汉字从输入计算机到汉字输出基本经过三个阶段汉字的输入编码汉字的输入编码u目的:直接使用西文标准键盘把汉字输入到计算机目的:直接使用西文标准键盘把汉字输入到计算机。u分类:主要有数字编码、拼音码分类:主要有数字编码、拼音码、字形编码三类。、字形编码三类。汉字内码汉字内码u用于汉字信息的存储、交换、检索等操作的机内代码用于汉字信息的存储、交换、检索等操作的机内代码u汉字内码用两个字节表示。为区分汉字字符与英文字符汉字内码用两个字节表示。为区分汉字字符与英文字符,将汉字国标将汉字国标码的每个字节的最高位置码的每个字节的最高位置1,作为汉字机内码作为汉字机内码汉字字模码汉字字模码u用点阵表示的汉字字形代码,用于汉字的输出。用点阵表示的汉字字形代码,用于汉字的输出。l汉字字形库汉字字形库l一般一般,汉字用点阵方式表示其外形汉字用点阵方式表示其外形,即即l汉字字模。汉字字模。不管汉字的笔划多少,都可在同样的方块中书写,从而把方不管汉字的笔划多少,都可在同样的方块中书写,从而把方块分割为许多小方块,组成一个点阵,每个小方块就是点阵块分割为许多小方块,组成一个点阵,每个小方块就是点阵中的一个点,即二进制的一个位。每个点由中的一个点,即二进制的一个位。每个点由0和和1表示表示“白白”和和“黑黑”两种颜色。用这样的点阵就可输出汉字。存储在两种颜色。用这样的点阵就可输出汉字。存储在计算机中的汉字和符号的外形集合称为汉字库。计算机中的汉字和符号的外形集合称为汉字库。22 七月 20246822 七月 202469显示输出显示输出打印输出打印输出机内码向字形码转换机内码向字形码转换机内码机内码输入码向机内码转换输入码向机内码转换中文编码中文编码字符代码化(输入)字符代码化(输入)数字码数字码拼音码拼音码字形码字形码22 七月 202470汉字字模码汉字字模码28828812812872722.1.5校验码(数据校验)校验码(数据校验)l数据校验的原因:数据校验的原因:为减少和避免错误信息的为减少和避免错误信息的形成、存储、传送中发生的错误形成、存储、传送中发生的错误, , 除需提高除需提高硬件本身的可靠性外硬件本身的可靠性外, , 还要在数据编码上想还要在数据编码上想办法。数据校验码就是一种有效的方法。办法。数据校验码就是一种有效的方法。l数据校验码数据校验码是指能发现错误或能自动纠正错是指能发现错误或能自动纠正错误的数据编码误的数据编码,又叫又叫“检错纠错编码检错纠错编码”。l数据校验码的码距数据校验码的码距是衡量两个编码相异程度是衡量两个编码相异程度大小的单位大小的单位, , 码距为码距为1, 1, 即表示两个码字间即表示两个码字间最少只有最少只有1 1个二进制位不同个二进制位不同( (如如00000000与与10001000之之间间), ), 这种编码无检错能力。这种编码无检错能力。00000001001000110100010101100111100010011010101111001101111011112.1.5校验码(数据校验)校验码(数据校验)l数据校验码的检验原理是数据校验码的检验原理是: :在编码中在编码中, , 除合除合法的码字外法的码字外, ,再加上一些非法的码字再加上一些非法的码字, , 当某当某个合法码字出现错误时个合法码字出现错误时, ,就变成非法码字。就变成非法码字。合理安排非法码字的数量和编码规则合理安排非法码字的数量和编码规则, , 能达能达到纠错的目的。到纠错的目的。 l对于码距对于码距2 2的数据校验码开始具有检错能的数据校验码开始具有检错能力。码距越大力。码距越大, , 检错、纠错的能力就越强检错、纠错的能力就越强, , 且检错能力总是大于或等于纠错能力。且检错能力总是大于或等于纠错能力。22 七月 202473码距及作用码距及作用l设用四位二进制表示设用四位二进制表示16种状态种状态16种编码都用到了,此时码距为种编码都用到了,此时码距为1;任何一种状态的四位码中的一位或几位出错,就变成另一个任何一种状态的四位码中的一位或几位出错,就变成另一个合法码;合法码;无查错能力。无查错能力。l若用四位二进制表示若用四位二进制表示8个状态个状态只用其中的只用其中的8种编码,而把另种编码,而把另8种编码作为非法编码;种编码作为非法编码;可使码距扩大为可使码距扩大为2;u注意:并不是任选注意:并不是任选8种编码都可扩大码距;种编码都可扩大码距;22 七月 202474校验码的类型校验码的类型l奇偶校验码奇偶校验码判断数据中判断数据中1的个数,设置的个数,设置1位校验位;位校验位;分奇校验和偶校验两种,只能检错,无纠错能力;分奇校验和偶校验两种,只能检错,无纠错能力;l海明校验码海明校验码在奇偶校验的基础上增加校验位而得;在奇偶校验的基础上增加校验位而得;具有检错和纠错的能力;具有检错和纠错的能力;l循环冗余校验码(循环冗余校验码(CRC)通过模通过模2的除法运算建立数据信息和校验位之间的约定关系;的除法运算建立数据信息和校验位之间的约定关系;具有很强的检错纠错能力。具有很强的检错纠错能力。22 七月 202475l校验过程:校验过程:有效有效信息信息校验码校验码编码器编码器校校验验码码校验位校验位校校验验码码发送发送/ /写写/ /存存接收接收/ /读读/ /取取有有效效信信息息校校验验位位有有效效信信息息校校验验位位校验码校验码译码器译码器正确正确错误错误输出输出奇偶校验码奇偶校验码概念概念l奇偶校验码是一种奇偶校验码是一种最简单而有效最简单而有效的数据校验方法。的数据校验方法。l实现方法实现方法: : 在每个被传送码的左边或右边加上在每个被传送码的左边或右边加上1 1位奇偶位奇偶校验位校验位0 0或或1, 1, 若采用奇校验位若采用奇校验位, , 只需把每个编码中只需把每个编码中1 1的的个数凑成奇数个数凑成奇数; ; 若采用偶校验位若采用偶校验位, , 只要把每个编码中只要把每个编码中1 1的个数凑成偶数。的个数凑成偶数。l检验原理检验原理: : 码距为码距为1 1的二进制码加上奇偶校验位就变成的二进制码加上奇偶校验位就变成码距为码距为2 2的奇偶校验码的奇偶校验码, , 这种编码能发现这种编码能发现1 1个或奇数个错个或奇数个错, , 但因码距较小但因码距较小, , 不能实现错误定位。不能实现错误定位。22 七月 202477奇偶校验码奇偶校验码概念概念l奇偶校验原理奇偶校验原理在数据中增加在数据中增加1个冗余位,使码距由个冗余位,使码距由1增加到增加到2;如果合法编码中有奇数个位发生了错误,就将成为非法代码。如果合法编码中有奇数个位发生了错误,就将成为非法代码。增加的冗余位称为奇偶校验位。增加的冗余位称为奇偶校验位。l校验的类型校验的类型偶校验:每个码字偶校验:每个码字(包括校验位包括校验位)中中1的数目为偶数。的数目为偶数。奇校验:每个码字奇校验:每个码字(包括校验位包括校验位)中中1的数目为奇数。的数目为奇数。l校验过程校验过程发送端:按照校验类型,在发送数据后添加校验位发送端:按照校验类型,在发送数据后添加校验位P;接收端:对接收到的数据(包括校验位)进行接收端:对接收到的数据(包括校验位)进行同样类型的校同样类型的校验验,决定数据传输中是否存在错误;,决定数据传输中是否存在错误;22 七月 202478奇偶校验码奇偶校验码校验原理校验原理l偶校验:在接收端求校验位偶校验:在接收端求校验位P=D7D6D5D4D3D2D1D0P若若P0,则无错;若,则无错;若P1,则有错。,则有错。l奇校验:在接收端求校验位奇校验:在接收端求校验位P=D7D6D5D4D3D2D1D0P若若P1,则无错;若,则无错;若P0,则有错。,则有错。l电路实现:电路实现:一般采用异或电路得到校验位。一般采用异或电路得到校验位。10101011求校验码求校验码偶校验码偶校验码101010111奇校验码奇校验码10101011022 七月 202479接收端接收端字字校验位校验位校验码校验码例例1: 数据数据 0010 0001奇校验码奇校验码0010 0001 1偶校验码偶校验码0010 0001 0例例2:数据:数据 : 0111 0101偶校验码偶校验码 0111 0101 1发送端发送端(门电路)(门电路)0110 0101 1出错!出错!奇偶校验码奇偶校验码例题(例题(1/2)22 七月 202480例例3:数据:数据 : 0111 0101奇校验码奇校验码 0111 0101 0发送端发送端 (门电路)(门电路)0110 0111 0接收端接收端正确正确奇偶校验只能发现奇偶校验只能发现奇数个错误,且不能奇数个错误,且不能纠正错误!纠正错误!奇偶校验码奇偶校验码例题(例题(1/2)已经错了,但是并未检已经错了,但是并未检查出来!查出来!奇偶校验奇偶校验l对奇偶校验码的评价对奇偶校验码的评价: :它能发现一位或奇数个位出错,它能发现一位或奇数个位出错,但无错误定位和纠错能力。尽管奇偶校验码的检错能但无错误定位和纠错能力。尽管奇偶校验码的检错能力较低,但对计算机内存出错概率统计力较低,但对计算机内存出错概率统计, , 其中其中70708080是是1 1位错误位错误, , 另因奇偶校验码实现简单另因奇偶校验码实现简单, , 故它还是一故它还是一种应用最广泛的校验方法。种应用最广泛的校验方法。l实际应用中实际应用中, , 多采用奇校验多采用奇校验, , 因奇校验中不存在全因奇校验中不存在全“0 0”代码代码, , 在某些场合下更便于判别。在某些场合下更便于判别。 22 七月 20248122 七月 202482CRC校验(自学了解)校验(自学了解)lCRC的工作方法的工作方法在发送端产生一个循环冗余码,附加在信息位后面一起发送在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端;到接收端;接收端收到的信息按发送端形成循环冗余码同样的算法进行接收端收到的信息按发送端形成循环冗余码同样的算法进行校验;校验;若无错,则接收;若有错,需重发。若无错,则接收;若有错,需重发。lCRC的特点的特点可检测出所有奇数位错;可检测出所有奇数位错;可检测出所有双比特的错;可检测出所有双比特的错;可检测出所有小于、等于校验位长度的突发错。可检测出所有小于、等于校验位长度的突发错。lCRC码的信息字段和校验字段的长度可以任意选定。码的信息字段和校验字段的长度可以任意选定。22 七月 2024832.2定点加法、减法运算定点加法、减法运算l2.2.1补码加法补码加法l2.2.2补码减法补码减法l2.2.3溢出概念与检验方法溢出概念与检验方法l2.2.4基本的二进制加法、减法器基本的二进制加法、减法器22 七月 2024842.2.1补码加法补码加法l补码加法运算基本公式补码加法运算基本公式定点整数:定点整数:x+y补补x补补+y补补(mod2n+1)定点小数:定点小数:x+y补补x补补+y补补(mod2)l证明证明(1)证明依据:补码的定义)证明依据:补码的定义(以定点小数为例以定点小数为例)(2)证明思路:分三种情况。)证明思路:分三种情况。(a)x、y均为正值(均为正值(0,0)(b)x、y一正一负(一正一负(0,0或者或者0)(c)x、y均为负值(均为负值(0,0)22 七月 202485补码加法公式证明(补码加法公式证明(1/2)证明:明:(a)0,0补补补(mod2)(b)0,0x补=2+x,y补=2+yx补+y补=2+x+2+y=2+(2+x+y)=2+x+y补(mod2)=x+y补22 七月 202486补码加法公式证明(补码加法公式证明(2/2)(c)0,0(000的证明与此相同的证明与此相同) x补补=x,y补补=2+y x补补+y补补=x+2+y=2+(x+y)当当x+y0时,时,2+(x+y)2,进位,进位2必丢失;必丢失;因因(x+y)0,故,故x补补+y补补=x+y=x+y补补(mod2)当当x+y0时,时,2+(x+y)2因因(x+y)0,故,故x补补+y补补=2+(x+y)=x+y补补(mod2)22 七月 202487定点数补码加法举例定点数补码加法举例例例11+1001,+0101,求。求。解:解:补补01001,补补00101补补01001补补00101补补01110所以所以1110例例12x1011,0101,求。求。解:解:补补01011,补补11011补补01011补补11011补补100110所以所以+011022 七月 2024882.2.2补码减法补码减法l补码减法运算基本公式补码减法运算基本公式定点整数:定点整数:x-y补补x补补-y补补x补补+-y补补(mod2n+1)定点小数:定点小数:x-y补补x补补-y补补x补补+-y补补(mod2)l证明:只需要证明证明:只需要证明补补补补已证明已证明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补补0l补补等于等于补补的各位取反,末位加的各位取反,末位加1。22 七月 202489定点数补码减法举例定点数补码减法举例例例13已知已知11110,2+1101,求:求:1补补,1补补,2补补,2补补。l解:解:1 1补补 100101 1补补1 1补补10110100001011102 2补补 011012 2补补2 2补补1100100000110011注意课本上的注意课本上的错误!错误!注意课本上的注意课本上的错误!错误!22 七月 202490定点数补码减法举例定点数补码减法举例例例141101,0110,求。,求。l解解:补补01101,补补00110,补补11010补补补补补补011011101010011100111011101101)1101010011122 七月 20249122 七月 202491定点数补码加减法运算定点数补码加减法运算l基本公式基本公式定点整数:定点整数:xy补补x补补+y补补(mod2n+1)定点小数:定点小数:xy补补x补补+y补补(mod2)l定点数补码加减法运算定点数补码加减法运算符号位和数值位可同等处理;符号位和数值位可同等处理;只要结果不溢出只要结果不溢出,将结果按,将结果按2n+1或或2取模,即为本次取模,即为本次运算结果。运算结果。22 七月 202492例例设机器字长为设机器字长为8位,位,补补10100011,补补00101101,求,求xy。解解:补补11010011补补补补补补10100011110100111011101100111011011810100011)11010011101110110x=93,y=+45计算过程中,产生了溢出!计算过程中,产生了溢出!9345=-138Eyl若要求若要求XY的结果的结果S,则,则S=XY=MS2ES其中其中,ES=Ex,MS=Mx(MySHR(Ex-Ey)l浮点数加减运算的步骤浮点数加减运算的步骤零操作数检查零操作数检查两操作数对阶两操作数对阶尾数相加减尾数相加减结果的规格化结果的规格化结果的舍入处理结果的舍入处理结果的溢出判断结果的溢出判断2.6.1浮点数加减运算浮点数加减运算一个操作数为一个操作数为0 0,则不必运算,节省运算时间,则不必运算,节省运算时间使小数点位置对齐,为加减运算做准备使小数点位置对齐,为加减运算做准备以双符号位的补码形式进行加减法操作以双符号位的补码形式进行加减法操作22 七月 2024194图2-6 浮点数加减运算流程22 七月 2024195浮点数加减运算浮点数加减运算两操作数对阶两操作数对阶l对阶的原则对阶的原则以较大的阶码为标准,调整阶码较小的数据;以较大的阶码为标准,调整阶码较小的数据;u避免阶码较大的浮点数的尾数左移,导致最高有效数位丢失;避免阶码较大的浮点数的尾数左移,导致最高有效数位丢失;l具体操作具体操作求阶差求阶差EEXEY调整阶码较小的数据调整阶码较小的数据u若若E0,则,则MY右移右移E位,结果的阶码为位,结果的阶码为EXu若若E0,则,则MX右移右移|E|位,结果的阶码为位,结果的阶码为EYl例,例,XEX=0001,MX=0.101;YEY=0011,尾数,尾数MY=0.111阶差阶差EEXEY=0001-0011=-10X尾数尾数MX右移右移2位,位,MX=0.001010增大阶码,尾增大阶码,尾数右移数右移22 七月 2024196浮点数加减运算浮点数加减运算结果的规格化处理结果的规格化处理l两尾数加减的结果有两种情况两尾数加减的结果有两种情况尾数溢出尾数溢出u尾数右移尾数右移1位,阶码加位,阶码加1尾数为非规格化数据尾数为非规格化数据u尾数左移尾数左移1位,阶码减,直至数值位最高位与符号位相反。位,阶码减,直至数值位最高位与符号位相反。l同上例,对阶后同上例,对阶后E=EY=0011,尾数,尾数MX=0.001(01),MY=0.111尾数求和尾数求和MS=MX+MY=00.00101+00.111=01.00001两符号位相反,应进行右规两符号位相反,应进行右规1位的操作位的操作则则MS=00.100(001),ES=011+1=0100两符号位为两符号位为01或或10右规右规左规左规补码表示的符号位补码表示的符号位与最高数值位相同与最高数值位相同22 七月 2024197浮点数加减运算浮点数加减运算结果的舍入处理结果的舍入处理l在对阶或右规操作时,会使加数或结果的尾数低若干位移出,影在对阶或右规操作时,会使加数或结果的尾数低若干位移出,影响精度,常用两种舍入处理方法响精度,常用两种舍入处理方法方法:舍入法方法:舍入法u保留右移时的移出位,若最高位为,则尾数加;否则舍去;保留右移时的移出位,若最高位为,则尾数加;否则舍去;u特点:精度较高,但需要记录所有的移出位。特点:精度较高,但需要记录所有的移出位。方法:恒置法方法:恒置法u若之前步骤有右移操作,则直接将结果的最低位置若之前步骤有右移操作,则直接将结果的最低位置1;u特点:精度较特点:精度较0舍舍1入法较低,但应用简单。入法较低,但应用简单。l同上例,结果的尾数同上例,结果的尾数MS=00.100001舍入法:舍入法:MS=00.100恒置法:恒置法:MS=00.10122 七月 2024198浮点数加减运算浮点数加减运算结果的溢出判断结果的溢出判断l尾数溢出尾数溢出在规格化处理时,通过完成右规完成;在规格化处理时,通过完成右规完成;l阶码溢出阶码溢出上溢上溢(结果绝对值太大结果绝对值太大)置上溢标志,结束;置上溢标志,结束;下溢下溢(结果绝对值太小结果绝对值太小)置机器零;置机器零;正常正常运算结束;运算结束;l同上例,同上例,运算结果的阶码运算结果的阶码ES=011+1=0100未溢出!未溢出!22 七月 2024199l设浮点数的阶码用双符号位,尾数用单符号位的补码表示;设浮点数的阶码用双符号位,尾数用单符号位的补码表示;X浮浮00010,0.11011011Y浮浮00100,1.01010100求阶差并对阶求阶差并对阶mEEXEYEX补补EY补补000101110011110m则浮点数则浮点数X,应使,应使MX右移右移2位,位,EX加加2,X浮浮00100,0.00110110(11),ES=00100尾数求和:尾数求和:MS=1.10001010(11)课本课本P55例例25设设20100.11011011,2100(-0.10101100),求,求。E= -2 0E= -2 0则则E EY Y为结果阶码为结果阶码修改浮点数修改浮点数X X0.00110110(11)1.010101001.10001010(11)22 七月 2024200课本课本P55例例25设设20100.11011011,2100(-0.10101100),求,求。l和的规格化处理和的规格化处理结果尾数的符号位与最高数值位相同,应结果尾数的符号位与最高数值位相同,应左规左规1位位则则MS=1.00010101(10),ES=00100100011。l舍入处理舍入处理若采用若采用0舍舍1入法入法MS=1.00010110l结果溢出判断结果溢出判断阶码符号位为阶码符号位为00,和不溢出,和不溢出l最终结果最终结果S=XY00011,1.000101102011(0.11101010)MS=1.10001010(11)1.0001010111.0001011022 七月 2024201【解解】假设两数均以补码表示,且采用双符号位假设两数均以补码表示,且采用双符号位,先将它们变为规格先将它们变为规格化浮点数化浮点数,则它们的浮点表示分别为则它们的浮点表示分别为浮浮11001,11.0111011浮浮11100,00.000101011001,00.1010000已知:已知:0.10001012-1110.00010102-100用补码运算求?并判断是否溢出?用补码运算求?并判断是否溢出?用补码运算求?并判断是否溢出?用补码运算求?并判断是否溢出?课堂练习课堂练习22 七月 202420200.1010000求阶差并对阶求阶差并对阶EE,即,即E为为0,阶码相等,无需对阶。,阶码相等,无需对阶。尾数求和尾数求和Ms=00.0001011规格化处理规格化处理尾数运算结果的符号位与最高数值位同值,应执行左规处理,尾数运算结果的符号位与最高数值位同值,应执行左规处理,尾数左移尾数左移3位,位,阶码减去阶码减去3;Ms=00.1011000,Es=10110舍入处理舍入处理没有丢失位,不必进行舍入。没有丢失位,不必进行舍入。判溢出判溢出阶码符号位为阶码符号位为10,发生下溢,故需置机器,发生下溢,故需置机器0。已知已知浮浮11001,11.0111011,浮浮11001,00.1010000求。求。11.011101100.000101122 七月 2024203求阶差并对阶求阶差并对阶EE,即,即E为为0,阶码相等,无需对阶。,阶码相等,无需对阶。尾数求差尾数求差My补补11.0110000Ms=10.1101011规格化处理规格化处理两位符号位不同,应执行两位符号位不同,应执行右规右规1位位的处理的处理,Ms=11.0110101(1),),Es=11010。舍入处理舍入处理丢失位高位位丢失位高位位1,但结果为负数,故该位,但结果为负数,故该位真值为真值为0,应舍去。,应舍去。判溢出判溢出阶码符号位为阶码符号位为11,无溢出,故结果为:,无溢出,故结果为: 0.10010112-6。已知已知浮浮11001,11.0111011,浮浮11001,00.1010000求。求。11.011101111.011000010.11010110 0舍舍1 1入法入法22 七月 20242042.6.2浮点乘法、除法运算浮点乘法、除法运算l设两个浮点数:设两个浮点数:X=Mx2Ex和和Y=MY2EY乘法:乘法:XY2ExEy(MxMy)除法:除法:XY2ExEy(MxMy)l浮点数乘除运算的步骤浮点数乘除运算的步骤0操作数检查;操作数检查;阶码加阶码加/减操作;减操作;尾数乘尾数乘/除操作;除操作;结果规格化、舍入和溢出处理;结果规格化、舍入和溢出处理;l本小节其他内容自学!本小节其他内容自学!阶码为补码或移码形式,可直接加减运算阶码为补码或移码形式,可直接加减运算可直接得到可直接得到0结果结果尾数为原码或补码形式,采用定点运算器尾数为原码或补码形式,采用定点运算器22 七月 20242052.6.3浮点运算流水线浮点运算流水线l流水线原理流水线原理把输入的任务分割成一系列子任务,使各个子任务把输入的任务分割成一系列子任务,使各个子任务能在流水线的各个阶段并发地执行。能在流水线的各个阶段并发地执行。实际上是在计算机上实现时间并行性的一种非常经实际上是在计算机上实现时间并行性的一种非常经济的方法。济的方法。l流水线相关内容在第流水线相关内容在第5章中讲解。章中讲解。22 七月 2024206本章小结本章小结l掌握数据的不同表示方法,并能在不同的表示形式间转换;掌握数据的不同表示方法,并能在不同的表示形式间转换;真值和机器数;原反补移码、真值和机器数;原反补移码、BCD码、定点数等表示码、定点数等表示浮点数的表示、取值范围、规格化、浮点数的表示、取值范围、规格化、IEEE754标准标准l理解数据校验的原理和方法理解数据校验的原理和方法奇偶校验、海明校验奇偶校验、海明校验l掌握定点数的运算,了解相关运算器的构成掌握定点数的运算,了解相关运算器的构成补码加减法运算、溢出的检测和判断方法、加减法电路补码加减法运算、溢出的检测和判断方法、加减法电路了解定点数的串行、并行乘除法运算方法,及运算器构成了解定点数的串行、并行乘除法运算方法,及运算器构成l掌握浮点数的加减法运算方法和步骤掌握浮点数的加减法运算方法和步骤22 七月 2024207考研大纲要求详解考研大纲要求详解l掌握数据的表示方法,理解各种数制和编码的关联和区别;掌握数据的表示方法,理解各种数制和编码的关联和区别;二进制、十进制、十六进制的表示及其相互转换的方法;二进制、十进制、十六进制的表示及其相互转换的方法;数据真值和机器数的关系,机器数的编码方式;数据真值和机器数的关系,机器数的编码方式;BCD码、字符与字符串的编码方法,以及数据的校验码;码、字符与字符串的编码方法,以及数据的校验码;l掌握定点数的表示和运算方法;掌握定点数的表示和运算方法;定点数定点数无符号数和有符号数的表示;无符号数和有符号数的表示;原码的加减运算、补码的加减运算、定点数的乘原码的加减运算、补码的加减运算、定点数的乘/除运算;除运算;溢出概念和判别方法;溢出概念和判别方法;l掌握浮点数的表示和运算方法;掌握浮点数的表示和运算方法;浮点数的表示范围和浮点数的表示范围和IEEE754标准;标准;浮点数的加浮点数的加/减运算;减运算;l掌握串行加法器和并行加法器、算术逻辑单元的功能和结构。掌握串行加法器和并行加法器、算术逻辑单元的功能和结构。22 七月 2024208本章作业本章作业P631、2、3、45(2)、6(2)、7(1)、9(1)
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号