第3章-2.定点数和浮点数.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第3章-2.定点数和浮点数.ppt》由会员分享,可在线阅读,更多相关《第3章-2.定点数和浮点数.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1.数的定点表示方法(1).(1).定点整数定点整数小数点位置固定在数的最低位之后小数点位置固定在数的最低位之后 如:如:D Dn-1 n-1 D Dn-2 n-2 D D1 1 D D0 0.范围:范围:2 2n-1 n-1-1-1 -2-2n-1 n-1 (采用字长采用字长n=16n=16位补码时其位补码时其值为值为32767 -32768)32767 -32768)(2).(2).定点小数定点小数小数点位置固定在数的符号位之后、数值小数点位置固定在数的符号位之后、数值最高位之前。最高位之前。如:如:D D0 0.D D-1 -1 D D-(n-2)-(n-2)D D-(n-1)-(n-
2、1)范围:范围:1-1-2 2-(n-1)-(n-1)-1-1 (采用字长采用字长n=16n=16位时其值为位时其值为32767/32768 -1)32767/32768 -1)其中其中n n表示字长多少位表示字长多少位1(1)浮点数的表示:是把字长分成阶码和尾数两部分。其根据就是:J Em-2.m-2.E0 0 S D-1-1D-(n-1)-(n-1)阶符阶符 阶码值阶码值 数符数符 .尾数值尾数值 S J Em-2.m-2.E0 0 D-1-1D-(n-1)-(n-1)数符数符 阶符阶符 阶码值阶码值 .尾数值尾数值 通常,阶码为补码或移码定点整数,尾数为补码或原码通常,阶码为补码或移码定
3、点整数,尾数为补码或原码定点小数。定点小数。2.数的浮点表示方法2 (2)浮点数的规格化n n目的:字长固定的情况下提高表示精度的措施:1 增加尾数位数(但数值范围减小)2 采用浮点规格化形式3n n规格化方法:调整阶码使尾数满足下列关系:规格化方法:调整阶码使尾数满足下列关系:uu尾数为原码表示时,无论正负应满足尾数为原码表示时,无论正负应满足1/21/2|d|11 即:小数点后的第一位数一定要为即:小数点后的第一位数一定要为1 1。正数的尾数应为0.1x.x负数的尾数应为1.1x.xuu尾数用补码表示时,小数最高位应与数符符号位尾数用补码表示时,小数最高位应与数符符号位相反。相反。正数应满
4、足 1/2d d-1,即 1.0 x.x4例题:设某机器用32位表示一个实数,阶码部分8位(含1位阶符),用定点整数补码表示;尾数部分24位(含数符1位),用规格化定点小数补码表示,基数为2。则:1.求X=256.5 的第一种浮点表示格式 X=(256.5)X=(256.5)10 10=+(100000000.1)=+(100000000.1)2 2=+(0.1000000001 x=+(0.1000000001 x 2 2+9+9)2 2 8位阶码为:(+9)补补=0000 1001 24位尾数为:(+0.10 0000 0001)补补 =0.100 0000 0010 0000 0000
5、0000 所求256.5的浮点表示格式为:0000 1001 0100 0000 0010 0000 0000 0000 用16进制表示此结果则为:(09402000)165 Y=-(256.5)10=-(100000000.1)2 =-0.1000000001 x2+9 8位阶码为:(+9)补补=0000 1001 24位尾数为:(-0.10 0000 0001)补补 =1.011 1111 1110 0000 0000 0000 所求-256.5的浮点表示格式为:0000 1001 1011 1111 1110 0000 0000 0000 用16进制表示此结果则为:(09BFE000)1
6、62.求Y=-256.5 的第一种浮点表示格式6(3)溢出问题n n 定点数的溢出定点数的溢出根据数值本身判断根据数值本身判断n n 浮点数的溢出浮点数的溢出根据规格化后的阶码判断根据规格化后的阶码判断上溢浮点数阶码大于机器最大阶码 中断下溢浮点数阶码小于机器最小阶码 零处理溢出的具体判断方法将结合实例在后续课程中介绍溢出的具体判断方法将结合实例在后续课程中介绍73.微机中所能表示的数值类型 n n(1)无符号二进制数(字节、字和双字)n n(2)带符号的二进制定点整数形式(16、32、64位补码表示)和18位BCD码整数形式(80bit)。n n(3)浮点数(IEEE754标准)包括数符S、
7、阶码E和尾数D三个字段。8 微机中的四种整数类型整数类型 数值范围 精 度 格 式16位整数 -3276832767 二进制16位 补码表示 短整数 -231 231-1 二进制32位 补码表示 长整数 -263 263-1 二进制64位 补码表示 BCD整数 -1018+11018-1 十进制18位 80个二进制其中最左面1字节的最高位是符号位,余7位无效;另外72位是18位BCD码,原码表示。9IEEE754标准格式如下 n n (-1)S 2E (D0.D-1D-(P-1)n n最高是数符S占1位,0表示正、1表示负;指数项E,基数是2,E是一个带有一定偏移量的无符号整数;尾数部分D,它
8、是一个带有一位整数位的二进制小数真值形式。其规格化形式应调整阶码使其尾数整数位D0为1且与小数点一起隐含掉。1011微机中浮点数表示成规格化形式,如下图所示:n n单精度单精度 31 30 23 22 031 30 23 22 0 符号位符号位 阶阶 码码 尾数有效位尾数有效位 1 1 n n双精度双精度 63 62 52 51 0 63 62 52 51 0 符号位符号位 阶阶 码码 尾数有效位尾数有效位 11扩展精度扩展精度 79 78 64 63 0 79 78 64 63 0 符号位符号位 阶阶 码码 尾数有效位尾数有效位 n n 微机中浮点数的三种表示形式微机中浮点数的三种表示形式
9、12例如将十进制数178.125表示成微机中的单精度浮点数n n解:178.125=10110010.001B =1.0110010001x27 指数E=7+127=134=10000110B 127是单精度浮点数应加的指数偏移量,其完整的浮点数形式为:0 10000110 011 0010 0010 0000 0000 0000 =43322000H13例:将下面Pentium机中的单精度浮点数表示成十进制真值是多少?0011,1111,0101,1000,0000,0000,0000,0000数符:S=(-1)0=1 (正号)阶码:E=(01111110)2-127=126-127=-1尾
10、数:D=(1.1011)2X=1.1011x2-1=(0.11011)2=0.84375143.2.4 数字化信息的编码及表示 计算机进行数据处理和运算,就必须首先实现数字化表达。另外由于计算机除了数据处理和运算外,还要进行各种文字(特别是中文)的处理与编辑。因此,所有由计算机处理的信息也要用数字进行编码。这样在物理机制上可以以数字信号表示.15 信息的数字化表示形式n n数字信号:是一种在时间上或空间上离散的信号,单个信号是常用的二值逻辑(0或1),依靠多位信号组合表示广泛的信息.161.用一串脉冲信号表示数字代码(先发低位后发高位为例)1 0 1 10tU172.用一组电平信号表示数字代码
11、0tU10tU10tU00tU118 n n3.用一组数字代码表示字符(如ASCII码)n n4.用若干点的组合表示图像 (如图形点阵码)n n5.用数字信号表示声音 (如VCD DVD光盘)n n6.用数字代码表示命令与状态19数字化方法表示信息的优点:n n抗干扰能力强,可靠性高;n n位数增多则数的表示范围可扩大;n n物理上容易实现,并可存储;n n表示信息的范围与类型极其广泛;n n能用逻辑代数等数字逻辑技术进行处理.203.3 二进制乘法运算1.软件编程方法实现软件编程方法实现(时序控制乘法器)时序控制乘法器)由手算到机器实现,要解决三个问题:符号问题、由手算到机器实现,要解决三个
12、问题:符号问题、由手算到机器实现,要解决三个问题:符号问题、由手算到机器实现,要解决三个问题:符号问题、部分积相加进位问题、移位问题。部分积相加进位问题、移位问题。部分积相加进位问题、移位问题。部分积相加进位问题、移位问题。原码乘法是先取绝对值相乘,再根据同号相乘为正、原码乘法是先取绝对值相乘,再根据同号相乘为正、原码乘法是先取绝对值相乘,再根据同号相乘为正、原码乘法是先取绝对值相乘,再根据同号相乘为正、异号相乘位负,单独决定符号位。补码乘法则让符号异号相乘位负,单独决定符号位。补码乘法则让符号异号相乘位负,单独决定符号位。补码乘法则让符号异号相乘位负,单独决定符号位。补码乘法则让符号位直接参
13、加运算,算法将会复杂一些。位直接参加运算,算法将会复杂一些。位直接参加运算,算法将会复杂一些。位直接参加运算,算法将会复杂一些。2.硬件快速乘法器实现硬件快速乘法器实现 利用中大规模集成电路芯片,在一拍节中实现多项利用中大规模集成电路芯片,在一拍节中实现多项利用中大规模集成电路芯片,在一拍节中实现多项利用中大规模集成电路芯片,在一拍节中实现多项部分积的相加,成为阵列乘法器。部分积的相加,成为阵列乘法器。部分积的相加,成为阵列乘法器。部分积的相加,成为阵列乘法器。213.3.1 定点数一位乘法定点数一位乘法1.定点原码一位乘定点原码一位乘规则规则规则规则:在机器中采用在机器中采用在机器中采用在机
14、器中采用A,B,CA,B,C寄存器来分别存放部分积,被乘寄存器来分别存放部分积,被乘寄存器来分别存放部分积,被乘寄存器来分别存放部分积,被乘数和乘数数和乘数数和乘数数和乘数 (1 1)在机器内一次加法操作只能求出两数之和,因此)在机器内一次加法操作只能求出两数之和,因此)在机器内一次加法操作只能求出两数之和,因此)在机器内一次加法操作只能求出两数之和,因此每求得一个相加数时,就得与上次部分积相加。每求得一个相加数时,就得与上次部分积相加。每求得一个相加数时,就得与上次部分积相加。每求得一个相加数时,就得与上次部分积相加。(2 2)人工计算时,相加数逐次向左偏移一位,由于最)人工计算时,相加数逐
15、次向左偏移一位,由于最)人工计算时,相加数逐次向左偏移一位,由于最)人工计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(或被乘数)的两倍后的乘积位数是乘数(或被乘数)的两倍后的乘积位数是乘数(或被乘数)的两倍后的乘积位数是乘数(或被乘数)的两倍.由于在求本由于在求本由于在求本由于在求本次部分积时,前一次部分积的最低位,不再参与运算,次部分积时,前一次部分积的最低位,不再参与运算,次部分积时,前一次部分积的最低位,不再参与运算,次部分积时,前一次部分积的最低位,不再参与运算,因此可将其右移一位。相加数可直送而不必偏移,于是因此可将其右移一位。相加数可直送而不必偏移,于是因此可将其右移一
16、位。相加数可直送而不必偏移,于是因此可将其右移一位。相加数可直送而不必偏移,于是用用用用N N位加法器就可实现两个位加法器就可实现两个位加法器就可实现两个位加法器就可实现两个N N位数相乘。位数相乘。位数相乘。位数相乘。(3 3)部分积右移时乘数寄存器同时右移一位,这样可)部分积右移时乘数寄存器同时右移一位,这样可)部分积右移时乘数寄存器同时右移一位,这样可)部分积右移时乘数寄存器同时右移一位,这样可以用乘数寄存器的最低位来控制相加数(取被乘数或零)以用乘数寄存器的最低位来控制相加数(取被乘数或零)以用乘数寄存器的最低位来控制相加数(取被乘数或零)以用乘数寄存器的最低位来控制相加数(取被乘数或
17、零),同时乘数寄存器的最高位可接收部分积右移出来的一,同时乘数寄存器的最高位可接收部分积右移出来的一,同时乘数寄存器的最高位可接收部分积右移出来的一,同时乘数寄存器的最高位可接收部分积右移出来的一位,因此,完成乘法运算后,位,因此,完成乘法运算后,位,因此,完成乘法运算后,位,因此,完成乘法运算后,A A寄存器中保存乘积的高寄存器中保存乘积的高寄存器中保存乘积的高寄存器中保存乘积的高位部分,乘数寄存器位部分,乘数寄存器位部分,乘数寄存器位部分,乘数寄存器C C中保存乘积的低位部分。中保存乘积的低位部分。中保存乘积的低位部分。中保存乘积的低位部分。22例例:设设X=0.1101,Y=0.1011
18、,求求XY.其中寄存器其中寄存器B=X ,Cd=4.流程图流程图3.6 计算过程如下计算过程如下:0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 10 0 0 1 1 0 1 1 0 10 0 1 1 0 10 1 0 0 1 10 0 1 0 0 1 1 1 1 00 0 0 0 0 00 0 1 0 0 10 0 0 1 0 0 1 1 1 10 0 1 1 0 10 1 0 0 0 10 0 1 0 0 0 1 1 1 1 +x右移一位+x右移一位+0右移一位+x右移一位部分积 A 乘数 C 乘积高位 乘积低位1(丢失)1(丢失)0(丢失)1(丢失)X
19、Y=0.1000111123 n注意:注意:n两操作数的绝对值相乘,两操作数的绝对值相乘,符号位单符号位单独处理。独处理。n寄存器寄存器A.B均设置双符号位,第均设置双符号位,第1符符号位始终是部分积符号,决定在右号位始终是部分积符号,决定在右移时第移时第1符号位补符号位补0n操作步数由乘数的尾数位数决定,操作步数由乘数的尾数位数决定,用计数器用计数器Cd来计数。即作来计数。即作n次累加和次累加和移位。移位。n最后是加符号位,根据最后是加符号位,根据Sx Sy决定。决定。242.定点补码一位乘法定点补码一位乘法 实现补码乘法有两种方法,现在广泛使用的是实现补码乘法有两种方法,现在广泛使用的是B
20、ooth算法,也称为比较法。这种方法在机器实算法,也称为比较法。这种方法在机器实现中要在乘数末位现中要在乘数末位Yi i之后再增加一个附加位之后再增加一个附加位Yi+1i+1,并令其初始值为并令其初始值为0。然后根据比较。然后根据比较Yi i、Yi+1i+1的值决的值决定下一步操作,规则如下:定下一步操作,规则如下:(部分积初始为部分积初始为0)Yi i Yi+1 i+1 操操 作作 0 0 原部分积右移一位原部分积右移一位 0 1 原部分积加原部分积加X补补补补后再右移一位后再右移一位 1 0 原部分积加原部分积加-X补补补补后再右移一位后再右移一位 1 1 原部分积右移一位原部分积右移一位
21、25例例3.35:设设X=-0.1101,Y=0.1011,即即X补补=11.0011,Y补补=0.1011 ,-X=00.1101 求求XY补补.计算过程如下计算过程如下:0 0 0 0 0 0 0.1 0 1 1 0 初始值,最后一位补0 0 0 1 1 0 1 Y5Y4=01 +-X补0 0 1 1 0 10 0 0 1 1 0 1 0 1 0 1 1 右移一位0 0 0 0 0 0 Y4Y3=11 +00 0 0 1 1 00 0 0 0 1 1 0 1 0 1 0 1 右移一位1 1 0 0 1 1 Y3Y2=10 +X补1 1 0 1 1 01 1 1 0 1 1 0 0 1 0
22、1 0 右移一位 0 0 1 1 0 1 Y2Y1=01 +-X补0 0 1 0 0 00 0 0 1 0 0 0 0 0 1 0 1 右移一位1 1 0 0 1 1 Y1Y0=10 +X补1 1 0 1 1 1 0 0 0 1+部分积 乘数Y Yi Yi+1 说明乘积高位 乘积低位XY补=1.01110001,XY=-0.1000111126 n n初始值与符号位:初始值与符号位:A寄存器存放部分累加和,寄存器存放部分累加和,初始为初始为0,采用双符号位。第,采用双符号位。第1符号位指示累符号位指示累加和的正负,以控制右移时补加和的正负,以控制右移时补0或补或补1。B中中存放被乘数的补码,双
23、符号位。存放被乘数的补码,双符号位。n n基本操作:用基本操作:用C寄存器最末两位作判断位,寄存器最末两位作判断位,决定下一步的操作。决定下一步的操作。n n移位移位:在右移时,第在右移时,第2符号位值移入位数的最符号位值移入位数的最高位,第高位,第1符号位值不变且移入第符号位值不变且移入第2符号位,符号位,而而A寄存器末位移入寄存器末位移入C寄存器。寄存器。n n步数与最后一步操作步数与最后一步操作:乘数有效位是乘数有效位是4位,共位,共作作5步。注意,最后一步不移位因为这一步步。注意,最后一步不移位因为这一步是用来处理符号位的。是用来处理符号位的。273.4.1 定点除法运算 1.1.定点
24、原码一位除法定点原码一位除法定点原码一位除法定点原码一位除法 有恢复余数法和不恢复余数法(加减交替法),计算机中常用有恢复余数法和不恢复余数法(加减交替法),计算机中常用有恢复余数法和不恢复余数法(加减交替法),计算机中常用有恢复余数法和不恢复余数法(加减交替法),计算机中常用后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先减后判,如减后发现不够减,则在下一步改作加除数操作。这样减后判,如减后发现不够减,则在下一步改作加
25、除数操作。这样减后判,如减后发现不够减,则在下一步改作加除数操作。这样减后判,如减后发现不够减,则在下一步改作加除数操作。这样操作步骤固定易于编程。其要点如下:操作步骤固定易于编程。其要点如下:操作步骤固定易于编程。其要点如下:操作步骤固定易于编程。其要点如下:(1)(1)要求被除数要求被除数要求被除数要求被除数|X|X|除数除数除数除数|Y|,|Y|,并取原码尾数的绝对值相除;符号并取原码尾数的绝对值相除;符号并取原码尾数的绝对值相除;符号并取原码尾数的绝对值相除;符号位单独处理,商的符号为相除两数符号的半加和。位单独处理,商的符号为相除两数符号的半加和。位单独处理,商的符号为相除两数符号的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定点 浮点
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内