版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 3.2.3 定点数和浮点数 计算机中的两种表示方式 数值范围:一种数据类型所能表示的最大值和 最小值 数据精度:实数所能表示的有效数字位数。 数值范围和数据精度均与使用多少位二进制位 数以及编码方式有关。 计算机用数字表示正负,隐含规定小数点。 采用“定点”、“浮点”两种表示形式。 2 1. 数的定点表示方法 (1). 定点整数小数点位置固定在数的最低位之后 如: Dn-1 Dn-2 D1 D0 . 范围: 2n-1 -1 -2n-1 (采用字长n=16位补码时 其值为32767 -32768) (2). 定点小数小数点位置固定在数的符号位之后、数 值最高位之前。 如:D0. D-1 D-
2、(n-2) D-(n-1) 范围:1 - 2-(n-1) -1 (采用字长n=16位时其值为 32767/32768 -1) 其中n表示字长多少位 3 (1) 浮点数的表示:是把字长分成阶码和 尾数两部分。其根据就是: J Em-2.E0 S D-1D-(n-1) 阶符 阶码值 数符 . . 尾数值 S J Em-2 .E0 D-1D-(n-1) 数符 阶符 阶码值 . . 尾数值 通常,阶码为补码或移码定点整数,尾数为补码或原码 定点小数。 2. 数的浮点表示方法 J E DX2 4 (2)浮点数的规格化 目的:字长固定的情况下提高表示精 度的措施: 1 增加尾数位数(但数值范围减小) 2
3、采用浮点规格化形式 5 规格化方法:调整阶码使尾数满足下列关系: 尾数为原码表示时,无论正负应满足1/2|d |1 即:小数点后的第一位数一定要为1。 正数的尾数应为0.1x.x 负数的尾数应为1.1x.x 尾数用补码表示时,小数最高位应与数符符号位 相反。 正数应满足 1/2d d -1,即 1.0 x.x 6 例题:设某机器用32位表示一个实数,阶码部分8位 (含1位阶符),用定点整数补码表示;尾数部分24 位(含数符1位),用规格化定点小数补码表示,基 数为2。则: 1. 求X=256.5 的第一种浮点表示格式 X=(256. 5)10 =+(100000000.1)2 =+(0.100
4、0000001 x 2+9 )2 8位阶码为:(+9)补=0000 1001 24位尾数为:(+0.10 0000 0001)补 =0.100 0000 0010 0000 0000 0000 所求256.5的浮点表示格式为: 0000 1001 0100 0000 0010 0000 0000 0000 用16进制表示此结果则为:(09402000)16 7 Y=-(256. 5)10 =-(100000000.1)2 =-0.1000000001 x2+9 8位阶码为:(+9)补=0000 1001 24位尾数为:(-0.10 0000 0001)补 =1.011 1111 1110 00
5、00 0000 0000 所求-256.5的浮点表示格式为: 0000 1001 1011 1111 1110 0000 0000 0000 用16进制表示此结果则为:(09BFE000)16 2. 求Y= -256.5 的第一种浮点表示格式 8 (3) 溢出问题 定点数的溢出根据数值本身判断 浮点数的溢出根据规格化后的阶码判断 上溢浮点数阶码大于机器最大阶码 中断 下溢浮点数阶码小于机器最小阶码 零处理 溢出的具体判断方法将结合实例在后续课程中介绍 9 3. 微机中所能表示的数值类型 (1)无符号二进制数(字节、字和双字) (2)带符号的二进制定点整数形式(16、 32、64位补码表示)和1
6、8位BCD码整数形式 (80bit)。 (3)浮点数(IEEE754标准) 包括数符S、 阶码E和尾数D三个字段。 10 微机中的四种整数类型 整数类型 数值范围 精 度 格 式 16位整数 -3276832767 二进制16位 补码表 示 短整数 -231 231-1 二进制32位 补码表 示 长整数 -263 263-1 二进制64位 补码表 示 BCD整数 -1018+11018-1 十进制18位 80个二 进制其中最左面1字节的最高位是符号位,余7位 无效;另外72位是18位BCD码,原码表示。 11 IEEE754标准格式如下 (-1)S 2E (D0.D-1D-(P-1) 最高是数
7、符S占1位,0表示正、1表示负; 指数项E,基数是2,E是一个带有一定偏移 量的无符号整数;尾数部分D,它是一个带 有一位整数位的二进制小数真值形式。其 规格化形式应调整阶码使其尾数整数位D0 为1且与小数点一起隐含掉。 12 微 机 中 三 种 不 同 类 型 浮 点 数 的 格 式 参 数 单 精 度 双 精 度 扩 展 精 度 浮 点 数 长 度 ( 位 ) 32 64 80 符 号 位 数 1 1 1 尾 数 长 度P(位 ) 23+1( 隐 ) 52+1( 隐 ) 64 阶 码E长 度 ( 位 ) 8 11 15 最 大 阶 码 +127 +1023 +16383 最 小 阶 码 -
8、126 -1022 -16382 阶 码 偏 移 量 +127 +1023 +16383 表 示 数 范 围 10 -38 10 +38 10 -308 10 +308 13 微机中浮点数表示成规格化形式,如下图所示: 单精度 31 30 23 22 0 符号位 阶 码 尾数有效 位 1 双精度 63 62 52 51 0 符号位 阶 码 尾数有效位 1 扩展精度 79 78 64 63 0 符号位 阶 码 尾数有效位 微机中浮点数的三种表示形式 14 例如将十进制数178.125表示成微 机中的单精度浮点数 解:178.125=10110010.001B =1.0110010001x27 指
9、数E=7+127=134=10000110B 127是单精度浮点数应加的指数偏移量,其完整的 浮点数形式为 : 0 10000110 011 0010 0010 0000 0000 0000 = 43322000H 15 例:将下面Pentium机中的单精度浮点数 表示成十进制真值是多少? 0011 ,1111,0101,1000,0000,0000,0000,0000 数符:S=(-1) 0=1 (正号) 阶码: E=(01111110)2-127=126-127= -1 尾数: D=(1.1011)2 X= 1.1011x2-1= (0.11011)2=0.84375 16 3.2.4 数
10、字化信息的编码及表 示 计算机进行数据处理和运算,就必须首先实 现数字化表达。 另外由于计算机除了数据处理和运算外,还 要进行各种文字(特别是中文)的处理与编辑。因 此,所有由计算机处理的信息也要用数字进行编 码。这样在物理机制上可以以数字信号表示. 17 信息的数字化表示形式 数字信号:是一种在时间上或空间上离散的 信号,单个信号是常用的二值逻辑(0或1),依 靠多位信号组合表示广泛的信息. 18 1.用一串脉冲信号表示数字代码 (先发低位后发高位为例) 1 0 1 1 0 t U 19 2.用一组电平信号表示数字代码 0t U 1 0t U 1 0t U 0 0t U 1 20 3.用一组
11、数字代码表示字符(如ASCII码) 4.用若干点的组合表示图像 (如图形点阵码) 5.用数字信号表示声音 (如VCD DVD光盘) 6.用数字代码表示命令与状态 21 数字化方法表示信息的优点: 抗干扰能力强,可靠性高; 位数增多则数的表示范围可扩大; 物理上容易实现,并可存储; 表示信息的范围与类型极其广泛; 能用逻辑代数等数字逻辑技术进行处理. 22 3.3 二进制乘法运算 1.软件编程方法实现软件编程方法实现(时序控制乘法器)时序控制乘法器) 由手算到机器实现,要解决三个问题:符号问题、由手算到机器实现,要解决三个问题:符号问题、 部分积相加进位问题、移位问题。部分积相加进位问题、移位问
12、题。 原码乘法是先取绝对值相乘,再根据同号相乘为原码乘法是先取绝对值相乘,再根据同号相乘为 正、异号相乘位负,单独决定符号位。补码乘法则让正、异号相乘位负,单独决定符号位。补码乘法则让 符号位直接参加运算,算法将会复杂一些。符号位直接参加运算,算法将会复杂一些。 2.硬件快速乘法器实现硬件快速乘法器实现 利用中大规模集成电路芯片,在一拍节中实现多项利用中大规模集成电路芯片,在一拍节中实现多项 部分积的相加,成为阵列乘法器。部分积的相加,成为阵列乘法器。 23 3.3.1 定点数一位乘法定点数一位乘法 1. 定点原码一位乘定点原码一位乘 规则规则:在机器中采用在机器中采用A,B,C寄存器来分别存
13、放部分积,被乘寄存器来分别存放部分积,被乘 数和乘数数和乘数 (1)在机器内一次加法操作只能求出两数之和,因此)在机器内一次加法操作只能求出两数之和,因此 每求得一个相加数时,就得与上次部分积相加。每求得一个相加数时,就得与上次部分积相加。 (2)人工计算时,相加数逐次向左偏移一位,由于最)人工计算时,相加数逐次向左偏移一位,由于最 后的乘积位数是乘数(或被乘数)的两倍后的乘积位数是乘数(或被乘数)的两倍.由于在求本由于在求本 次部分积时,前一次部分积的最低位,不再参与运算,次部分积时,前一次部分积的最低位,不再参与运算, 因此可将其右移一位。相加数可直送而不必偏移,于是因此可将其右移一位。相
14、加数可直送而不必偏移,于是 用用N位加法器就可实现两个位加法器就可实现两个N位数相乘。位数相乘。 (3)部分积右移时乘数寄存器同时右移一位,这样可)部分积右移时乘数寄存器同时右移一位,这样可 以用乘数寄存器的最低位来控制相加数(取被乘数或以用乘数寄存器的最低位来控制相加数(取被乘数或 零),同时乘数寄存器的最高位可接收部分积右移出来零),同时乘数寄存器的最高位可接收部分积右移出来 的一位,因此,完成乘法运算后,的一位,因此,完成乘法运算后,A寄存器中保存乘积寄存器中保存乘积 的高位部分,乘数寄存器的高位部分,乘数寄存器C中保存乘积的低位部分。中保存乘积的低位部分。 24 例例:设设X=0.11
15、01,Y=0.1011,求求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 1 0 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 1 +x 右移一位 +x 右移一位 +0 右移一位 +x 右移一位 部分积 A 乘数 C
16、 乘积高位 乘积低位 1(丢失) 1(丢失) 0(丢失) 1(丢失) XY=0.10001111 25 注意:注意: 两操作数的绝对值相乘,两操作数的绝对值相乘, 符号位单符号位单 独处理。独处理。 寄存器寄存器A.B均设置双符号位,第均设置双符号位,第1符符 号位始终是部分积符号,决定在右号位始终是部分积符号,决定在右 移时第移时第1符号位补符号位补0 操作步数由乘数的尾数位数决定,操作步数由乘数的尾数位数决定, 用计数器用计数器Cd来计数。即作来计数。即作n次累加次累加 和移位。和移位。 最后是加符号位,根据最后是加符号位,根据Sx Sy决定。决定。 26 2.定点补码一位乘法定点补码一位
17、乘法 实现补码乘法有两种方法,现在广泛使用的是实现补码乘法有两种方法,现在广泛使用的是 Booth算法,也称为比较法。这种方法在机器实算法,也称为比较法。这种方法在机器实 现中要在乘数末位现中要在乘数末位Yi之后再增加一个附加位之后再增加一个附加位Yi+1, 并令其初始值为并令其初始值为0。然后根据比较。然后根据比较Yi、 Yi+1的值决的值决 定下一步操作,规则如下:定下一步操作,规则如下:(部分积初始为部分积初始为0) Yi Yi+1 操操 作作 0 0 原部分积右移一位原部分积右移一位 0 1 原部分积加原部分积加X补补后再右移一位后再右移一位 1 0 原部分积加原部分积加-X补补后再右
18、移一位后再右移一位 1 1 原部分积右移一位原部分积右移一位 27 例例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 1 0 0 0 1 1 0 1 0 1 0 1 1 右移一位 0 0 0 0 0 0 Y4Y3=11 +0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 右移一位 1 1 0 0 1 1 Y
19、3Y2=10 +X补 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 右移一位 0 0 1 1 0 1 Y2Y1=01 +-X补 0 0 1 0 0 0 0 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.10001111 28 初始值与符号位:初始值与符号位:A寄存器存放部分累加和,寄存器存放部分累加和, 初始为初始为0,采用双符号位。第,采用双符号位。第
20、1符号位指示累符号位指示累 加和的正负,以控制右移时补加和的正负,以控制右移时补0或补或补1。B中中 存放被乘数的补码,双符号位。存放被乘数的补码,双符号位。 基本操作:用基本操作:用C寄存器最末两位作判断位,寄存器最末两位作判断位, 决定下一步的操作。决定下一步的操作。 移位移位:在右移时,第在右移时,第2符号位值移入位数的最符号位值移入位数的最 高位,第高位,第1符号位值不变且移入第符号位值不变且移入第2符号位,符号位, 而而A寄存器末位移入寄存器末位移入C寄存器。寄存器。 步数与最后一步操作步数与最后一步操作:乘数有效位是乘数有效位是4位,共位,共 作作5步。注意,最后一步不移位因为这一
21、步步。注意,最后一步不移位因为这一步 是用来处理符号位的。是用来处理符号位的。 29 3.4.1 定点除法运算 1.定点原码一位除法定点原码一位除法 有恢复余数法和不恢复余数法(加减交替法),计算机中常用有恢复余数法和不恢复余数法(加减交替法),计算机中常用 后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先 减后判,如减后发现不够减,则在下一步改作加除数操作。这样减后判,如减后发现不够减,则在下一步改作加除数操作。这样 操作步骤固定易于编程。其要点如下:操作步骤固定易于编程。其要点如下: (1)要求被除数要求被除数|X|除数除数|
22、Y|,并取原码尾数的绝对值相除;符号并取原码尾数的绝对值相除;符号 位单独处理,商的符号为相除两数符号的半加和。位单独处理,商的符号为相除两数符号的半加和。 (2)被除数的位数可以是除数的两倍,其低位的数值部分开)被除数的位数可以是除数的两倍,其低位的数值部分开 始时放在商寄存器中。运算中,放被除数和商的始时放在商寄存器中。运算中,放被除数和商的A、C寄存器同寄存器同 时移位,并将商寄存器时移位,并将商寄存器C中最高位移到被除数寄存器中最高位移到被除数寄存器A的最低位的最低位 中。中。 (3)每步操作后,可根据余数)每步操作后,可根据余数Ri符号来判断是否够减:符号来判断是否够减:Ri位位 正
23、表明够减,上商正表明够减,上商Q为为1。Ri为负表明不够减,上商为负表明不够减,上商Q为为0。 (4)基本操作可用通式描述为:)基本操作可用通式描述为:Ri=2Ri+(1-2Qi)Y (5原码除的思想是先当成正数相除,若最后一步所得余数为原码除的思想是先当成正数相除,若最后一步所得余数为 负,则应恢复余数,但不移位,以保持负,则应恢复余数,但不移位,以保持Ri为正。为正。 举例如下:举例如下: 30 例例3.39:设被乘数设被乘数X=0.1011,Y=0.1101,用加减交替法求用加减交替法求X/Y. -Y补补=11.0011, 计算过程如下计算过程如下: 0 0 1 0 1 1 0 0 0
24、0 0 开始情形 1 1 0 0 1 1 +-Y补 1 1 1 1 1 0 0 0 0 0 0 不够减,商上0 1 1 1 1 0 0 0 0 0 0 0 左移 0 0 1 1 0 1 +Y 0 0 1 0 0 1 0 0 0 0 1 够减,商上1 0 1 0 0 1 0 0 0 0 1 0 左移 1 1 0 0 1 1 +-Y补 0 0 0 1 0 1 0 0 0 1 1 够减,商上1 0 0 1 0 1 0 0 0 1 1 0 左移 1 1 0 0 1 1 +-Y补 1 1 1 1 0 1 0 0 1 1 0 不够减,商上0 1 1 1 0 1 0 0 1 1 0 0 左移 0 0 1 1
25、 0 1 +Y 0 0 0 1 1 1 0 1 1 0 1 够减,商上1 +) +) +) +) +) 被除数(余数R) (被除数)(商) 操作说明 余数 商 X/Y=0.1101, 余数=0.0111 31 A寄存器中开始时存放被除数的绝对值,以后将存寄存器中开始时存放被除数的绝对值,以后将存 放各次余数,取双符号位。放各次余数,取双符号位。B寄存器存放除数的绝寄存器存放除数的绝 对值,取双符号位。对值,取双符号位。C寄存器同来存放商,取单符寄存器同来存放商,取单符 号位。号位。 第一步操作:将被除数第一步操作:将被除数X视为初始余数视为初始余数R0,根据根据R0符符 号位正(绝对值),令商
26、符为号位正(绝对值),令商符为0,正是的商符以后,正是的商符以后 再置入。第一步为再置入。第一步为-Y。 商值则根据余数商值则根据余数R0的符号来决定,正则商上的符号来决定,正则商上1,求,求 下一位商的办法是余数左移一位再减去除数;当余下一位商的办法是余数左移一位再减去除数;当余 数为负则商上数为负则商上0,求下一位商的办法是余数左移一,求下一位商的办法是余数左移一 位再加上除数。左移位时末位补位再加上除数。左移位时末位补0。 操作步数与最后一步操作:如果要求得操作步数与最后一步操作:如果要求得n位商(不位商(不 含符号位),则需作含符号位),则需作n步步“左移左移-加减加减”循环;若第循环
27、;若第 n步余数为负,则需增加一步恢复余数,这增加的步余数为负,则需增加一步恢复余数,这增加的 一步不移位。一步不移位。 32 2.定点补码一位除法(加减交替法) 补码除法规则表:补码除法规则表:X补、补、Y补、补、r补补分别为被除数、除数和余分别为被除数、除数和余 数数 X补Y补 数 符 商符第一步 操作 r补 Y补 数 符 上商 下一步操作 同号 0 减法同号(够减) 异号(不够减) 1 0 2ri补-Y补 2ri补+Y补 异号 1 加法同号(不够减) 异号(够减) 1 0 2ri补-Y补 2ri补+Y补 33 以上是在以上是在|X|Y|即不溢出的前提下;即不溢出的前提下; (1)第一步如
28、果被除数与除数同号,用被除数减去除数;)第一步如果被除数与除数同号,用被除数减去除数; 若两数异号,用被除数加上除数。如果所得余数与除数若两数异号,用被除数加上除数。如果所得余数与除数 同号上商同号上商1,若余数与除数异号,上商,若余数与除数异号,上商0,该商即为结果,该商即为结果 的符号位。的符号位。 (2)求商的数值部分)求商的数值部分 如果上次上商如果上次上商1,将余数左移一位,将余数左移一位 后减去除数;如果上次上商后减去除数;如果上次上商0,将余数左移一位后加上,将余数左移一位后加上 除数。然后判断本次操作后的余数,如果余数与除数同除数。然后判断本次操作后的余数,如果余数与除数同 号
29、上商号上商1;若余数与除数异号上商;若余数与除数异号上商0。如此重复执行。如此重复执行 n-l次(设数值部分有次(设数值部分有n位)。位)。 (3)商的最后一位一般采用恒置)商的最后一位一般采用恒置1的办法,井省略了最的办法,井省略了最 低位低位+1的操作,此时最大误差为士的操作,此时最大误差为士2-n.如果对商的精度如果对商的精度 要求较高则可按规则(要求较高则可按规则(2)再进行一次操作以求得商的)再进行一次操作以求得商的 第第n位。当除不尽时若商为负,要在商的最低一位加位。当除不尽时若商为负,要在商的最低一位加 1, 使商从反码值转变成补码值使商从反码值转变成补码值;若商为正最低位不需要
30、加若商为正最低位不需要加1。 34 例例3.40:设设X补补=1.0111,Y补补=0.1101,求求X/Y补补. -Y补补=11.0011,计算过程如下计算过程如下: X/Y补=1.0101 1 1 0 1 1 1 0 0 0 0 0 开始情形 0 0 1 1 0 1 两数异号+Y补 ?书 0 0 0 1 0 0 0 0 0 0 1 余数与除数同号,商上1 0 0 1 0 0 0 0 0 0 1 0 左移 1 1 0 0 1 1 上次商1,+-Y补 1 1 1 0 1 1 0 0 0 1 0 余数与除数异号,商上0 1 1 0 1 1 0 0 0 1 0 0 左移 0 0 1 1 0 1 上
31、次商0,+-Y补 0 0 0 0 1 1 0 0 1 0 1 余数与除数同号,商上1 0 0 0 1 1 0 0 1 0 1 0 左移 1 1 0 0 1 1 上次商1, +-Y补 1 1 1 0 0 1 0 1 0 1 0 余数与除数异号,商上0 1 1 0 0 1 0 1 0 1 0 1 左移,商的最低位恒置1 +) +) +) +) 被除数(余数) 商 操作说明 余数 商 35 例例3.40最低位恒置最低位恒置1,余数不正确。,余数不正确。 A寄存器存放被除数(补码),以后存放余数,寄存器存放被除数(补码),以后存放余数, 取双符号位。取双符号位。B寄存器存放除数(补码),双寄存器存放除
32、数(补码),双 符号位。符号位。C寄存器存放商,初始值为寄存器存放商,初始值为0(未考(未考 虑商符之前),单符号位。虑商符之前),单符号位。 如余数为如余数为0,则表示除尽。例,则表示除尽。例3.41如采用商的如采用商的 最低位恒置最低位恒置1的方法,其误差为的方法,其误差为2-n=2-4。 补码除法规则表补充说明:补码除法规则表补充说明:1、表中、表中i=0n-1. 2、上采用末位恒置、上采用末位恒置1的方法,操作简便。如的方法,操作简便。如 要提高精度,则要提高精度,则按上述规则要提高精度,则要提高精度,则按上述规则 多求一位,再采用以下方法对商进行处理:多求一位,再采用以下方法对商进行
33、处理:两两 数能除尽时,如除数为正,商不必加数能除尽时,如除数为正,商不必加2-n, 如除数为负,商加如除数为负,商加2- n; ;两数除不尽时,如商为正,商不必加两数除不尽时,如商为正,商不必加2-n, 如商为负,商加如商为负,商加 2-n 。 36 例例3.42 X补补=1.0111, Y补补=1.0011, 则则-Y补补 =0.1101。求。求X/Y补补=? 被除数(余数)被除数(余数) 商商 操作说明操作说明 11。0111 + 00。1101 两数同号,+-Y补 00。0100 0 余数与除数异号, 商0 左移 00。1000 + 11。0011 +Y补 11。1011 01 同号,
34、商1 左移 11。0110 + 00。1101 +-Y补 00。0011 010 异号,商0 左移 00。0110 + 11。0011 +Y补 11。1001 0101 同号,商1 左移 11。0010 + 00。1101 +-Y补 11。1111 01011 同号,商1 X/Y补=0.1011 余数补=1。1111x2-4 37 3.5 浮点数的运算方法 浮点数的表示形式(以浮点数的表示形式(以2为底):为底): N = M 2E 其中,其中,M为浮点数的尾数,一般为绝对值小于为浮点数的尾数,一般为绝对值小于1的的 规格化二进制小数用原码或补码形式表示;规格化二进制小数用原码或补码形式表示;
35、E 为浮点数的阶码,一般是用移码或补码表示的为浮点数的阶码,一般是用移码或补码表示的 整数。整数。 阶码的底除了阶码的底除了2以外,还有用以外,还有用8或或16表示表示 的,这里先以的,这里先以2为底进行讨论。然后再简介以为底进行讨论。然后再简介以8 或或16为底的数的运算。为底的数的运算。 38 1. 加、减法运算 两数首先均为规格化数,在进行规格化浮点数两数首先均为规格化数,在进行规格化浮点数 的加减运算需经过五步完成:的加减运算需经过五步完成: 对阶操作:低阶向高阶补齐,使阶码相等;对阶操作:低阶向高阶补齐,使阶码相等; 尾数运算:阶码对齐后直接对尾数运算;尾数运算:阶码对齐后直接对尾数
36、运算; 结果规格化:对运算结果进行规格化处理;结果规格化:对运算结果进行规格化处理; (使补码尾数的最高位和尾数符号相反使补码尾数的最高位和尾数符号相反) 如溢出则需左规,如不是规格化时应右规。如溢出则需左规,如不是规格化时应右规。 舍入操作:丢失位进行舍入操作:丢失位进行0舍舍1入或恒置入或恒置1处理;处理; 判断溢出:判断阶码是否溢出,下溢则将运判断溢出:判断阶码是否溢出,下溢则将运 算结果置算结果置0,上溢则中断。,上溢则中断。 39 具体说明如下: 对阶运算对阶运算(小阶向大阶对齐小阶向大阶对齐) 尾数为原码时尾数为原码时,尾数右移尾数右移,符号位不动符号位不动,最高位补最高位补0 尾
37、数为补码时尾数为补码时,尾数右移尾数右移,符号也移位符号也移位,最高位补符号最高位补符号 位位 例如:例如: 求求=? 小阶对大阶小阶对大阶 舍掉的是舍掉的是 如大阶对小阶如大阶对小阶 则舍掉的是则舍掉的是 21001. 021101. 0 3 333 21111. 020010. 021101. 0 21101. 021001. 020100. 0 20001.0 3 21100. 0 40 333 2101110. 02001010. 021001. 0 规格化:原码尾数高位为规格化:原码尾数高位为1,补码与符号相反,补码与符号相反 舍入操作:舍入操作:0舍舍1入入 或或 恒置恒置1 例1
38、:求=? 0舍1入后为 恒置1 例2:求 =? 0舍1入后为 恒置1 判断结果的正确性(即结果的阶码是否溢出) 21001.021001.0 3 333 2101101.02001001.021001.0 21010.021001.0 3 3 21100.0 3 21011.0 3 21011.0 3 21011.0 41 例:假设 其中指数和小数均为二进制真值其中指数和小数均为二进制真值, ,求求X+Y=?X+Y=? 其阶码其阶码4 4位位 ( (含阶符含阶符),),补码表示补码表示; ;尾数尾数6 6位位, ,补码表示补码表示, ,尾数符号在最尾数符号在最 高位高位, ,尾数数值尾数数值5
39、 5位。位。 解: 尾符 阶码 尾数5位 X浮=0 0010 11010 Y浮=1 0011 00010 对阶 X浮=0 0011 01101 尾数求和 00.01101+11.00010=11.01111 X浮+ Y浮=1 0011 01111 规格化、舍入操作、阶码溢出判断,最后: X+Y真= 1110 21111.0,21101.0YX 11 210001.0 42 例例: :假设假设 其中指数和小数均为二进制真值其中指数和小数均为二进制真值, ,求求X-YX-Y。其阶码。其阶码4 4位位( (含阶符含阶符),),补补 码表示码表示; ;尾数尾数6 6位位, ,补码表示补码表示, ,尾数
40、符号在最高位尾数符号在最高位, ,尾数数值尾数数值5 5位位 解: 尾符 阶码 尾数 X浮=0 0010 11010 Y浮=1 0011 00010 对阶 X浮=0 0011 01101 尾数求差: X尾-Y 尾补=X 尾补+-Y 尾补 =00.01101+00.11110=01.01011 规格化处理、舍入操作均不需要,阶码溢出检查: 尾数符号位为01,尾数发生上溢出,做规格化处理 尾数连同符号右移一位00.101011,阶码加1至0100 舍入操作恒置1后:X浮- Y浮=0 0100 10101 X-Y真= 100 210101. 0 1110 21111.0,21101.0YX 43 3
41、.5.2 浮点数的乘、除法运算 两浮点数相乘其乘积的阶码为相乘两数阶码之和两浮点数相乘其乘积的阶码为相乘两数阶码之和, 其尾数应为相乘两数的尾数之积。其尾数应为相乘两数的尾数之积。 两个浮点数相除,商的阶码为被除数的阶码减去两个浮点数相除,商的阶码为被除数的阶码减去 除数的阶码得到的差,尾数为被除数的尾数除以除数的阶码得到的差,尾数为被除数的尾数除以 除数的尾数所得的商。除数的尾数所得的商。 参加运算的两个数都为规格化浮点数,乘除运算参加运算的两个数都为规格化浮点数,乘除运算 都可能出现结果不满足规格化要求的问题,因此都可能出现结果不满足规格化要求的问题,因此 也必须进行规格化、舍入和判溢出等
42、操作。规格也必须进行规格化、舍入和判溢出等操作。规格 化时要修改阶码。化时要修改阶码。 44 .浮点数乘法运算(阶码的底为浮点数乘法运算(阶码的底为8或或16) 前面的讨论,是以阶码值的底为前面的讨论,是以阶码值的底为2来进行的。为了用相同位数的来进行的。为了用相同位数的 阶码表示更大范围的浮点数,在一些计算机中也有选用阶码的底阶码表示更大范围的浮点数,在一些计算机中也有选用阶码的底 为为8或或16的。此时浮点数的。此时浮点数N被表示成被表示成 N=8EM 或或 N=16EM 阶码阶码E和尾数和尾数M还都是用二进制表示的,其运算规则与阶码以还都是用二进制表示的,其运算规则与阶码以2 为底基本相
43、同,但关于对阶和规格化操作有新的相应规定。当阶为底基本相同,但关于对阶和规格化操作有新的相应规定。当阶 码以码以8为底时,只要尾数满足为底时,只要尾数满足 18Ml 或或 一一1M一一18就是规格化数。执行对就是规格化数。执行对 阶和规格化操作时,每当阶码的值增或减阶和规格化操作时,每当阶码的值增或减1,尾数要相应右移或,尾数要相应右移或 左移三位。左移三位。 当阶码以当阶码以16为底时,只要尾数满足为底时,只要尾数满足116M1或一或一1M 一一116就是规格化数。执行对阶和规格化操作时,阶码的值增就是规格化数。执行对阶和规格化操作时,阶码的值增 或减或减1,尾数必须移四位。,尾数必须移四位
44、。 判别为规格化数或实现规格化操作,均应使数值的最高三项判别为规格化数或实现规格化操作,均应使数值的最高三项 (以(以8为底)或四位(以为底)或四位(以16为底)中至少有一位与符号位不同。为底)中至少有一位与符号位不同。 5浮点数除法运算步骤浮点数除法运算步骤 与乘法运算类似,也分求商的阶码、尾数相除、规格化、与乘法运算类似,也分求商的阶码、尾数相除、规格化、 舍入和判溢出舍入和判溢出5个步骤,不再详细讨论。个步骤,不再详细讨论。 45 3.6运算部件 1.定点运算部件定点运算部件 定点运算部件由算术逻辑运算部件定点运算部件由算术逻辑运算部件ALU、 若干个寄存器、移位电路、计数器、门电路等若
45、干个寄存器、移位电路、计数器、门电路等 组成。组成。ALU部件主要完成加减法算术运算及逻部件主要完成加减法算术运算及逻 辑运算(其功能可参考辑运算(其功能可参考 2 4 2节),其中还应包节),其中还应包 含有快速进位电路。含有快速进位电路。 2.浮点运算部件浮点运算部件 通常由阶码运算部件和尾数运算部件组成。其通常由阶码运算部件和尾数运算部件组成。其 各自的结构与定点运算部件相似。但阶码部分各自的结构与定点运算部件相似。但阶码部分 仅执行加减法运算。其尾数部分则执行加减乘仅执行加减法运算。其尾数部分则执行加减乘 除运算,左规时有时需要左移多位。为加速移除运算,左规时有时需要左移多位。为加速移
46、 位过程,有的机器设置了可移动多位的电路。位过程,有的机器设置了可移动多位的电路。 46 3.7 计算机中的数据校验方法 采用冗余校验方法:采用冗余校验方法: 即在基本的有效数据外,再扩充部分位,增加即在基本的有效数据外,再扩充部分位,增加 部分(冗余部分)被称为校验位。将校验位与部分(冗余部分)被称为校验位。将校验位与 数据位一起按某种规则编码,写入存储器或向数据位一起按某种规则编码,写入存储器或向 外发送。当从存储器读出或接收到外部传入的外发送。当从存储器读出或接收到外部传入的 代码时,再按相应的规则进行判读。若约定的代码时,再按相应的规则进行判读。若约定的 规则被破坏,则表示出现错误。根
47、据错误的特规则被破坏,则表示出现错误。根据错误的特 征进行修正恢复。征进行修正恢复。 47 几个名词概念:几个名词概念: 码字:由若干代码组成的一个字。码字:由若干代码组成的一个字。 如如8421码中码中6(0110),),7(0111) 码距:一种码制中任意两个码字间的最小距离。码距:一种码制中任意两个码字间的最小距离。 距离:两个码字之间不同的代码个数。距离:两个码字之间不同的代码个数。 8421码中,最小的码距为码中,最小的码距为1,如,如0000和和 0001、0010和和0011等;最大码距为等;最大码距为4, 如如0111和和1000。8421码的码距为码的码距为1。 码距为码距为
48、1,即不能查错也不能纠错。,即不能查错也不能纠错。 码距越大,查错、纠错能力越强。码距越大,查错、纠错能力越强。 48 3.7.1 奇偶校验法 奇偶校验法是计算机中广泛采用的检查传输奇偶校验法是计算机中广泛采用的检查传输 数据准确性的方法。奇偶校验法的原理是:数据准确性的方法。奇偶校验法的原理是: 在每组数据信息上附加一个校验位,校验位在每组数据信息上附加一个校验位,校验位 的取值(的取值(0或或1)取决于这组信息中)取决于这组信息中1的个数和校的个数和校 验方式(奇或偶校验)。验方式(奇或偶校验)。 如果采用奇校验,则这组数据加上校验码位如果采用奇校验,则这组数据加上校验码位 后数据中后数据
49、中1的个数应为奇数个。的个数应为奇数个。 如果采用偶校验,则这组数据加上校验码位如果采用偶校验,则这组数据加上校验码位 后数据中后数据中1的个数应为偶数个。的个数应为偶数个。 49 例如:八位信息例如:八位信息10101011中共有中共有5个个1,附,附 加校验位后变为九位。若采用奇校验,则附加加校验位后变为九位。若采用奇校验,则附加 的校验位应取的校验位应取0值,保证值,保证1的个数为奇数个即的个数为奇数个即 0 10101011 ;若采用偶校验则附加的校验位应;若采用偶校验则附加的校验位应 取取1值即值即 1 10101011 。 奇偶校验的特点:奇偶校验的特点: 1、奇偶校验法使数据的码
50、距为、奇偶校验法使数据的码距为2,因而可检出,因而可检出 数据传送过程中奇数个数位出错的情况;数据传送过程中奇数个数位出错的情况; 2、实际中两位同时出错的概率极低,奇偶校验、实际中两位同时出错的概率极低,奇偶校验 法简便可靠易行,但它只能发现错误,却不法简便可靠易行,但它只能发现错误,却不 知错在何处,因而不能自动纠正。知错在何处,因而不能自动纠正。 50 偶校验 出错 奇校验出错 偶形成 奇形成 D校为校验位 D校 D1 D2 D3 D4 D5 D6 D7 D8 8位数据的奇偶校验码形成电路及检码电路 51 3.7.2 海明码校验方法 海明码校验方法以奇偶校验法为基础,其校验海明码校验方法
51、以奇偶校验法为基础,其校验 位不是一个而是一组,故其码距大于位不是一个而是一组,故其码距大于2 。 海明码校验方法能够检测出具体错误并纠正。海明码校验方法能够检测出具体错误并纠正。 原理是在数据中加入原理是在数据中加入r个校验位,将数据的码个校验位,将数据的码 距按照一定规则拉长。距按照一定规则拉长。r个校验位可以表示个校验位可以表示2r 个信息,除一个表示无误信息外,其余个信息,除一个表示无误信息外,其余2r-1信信 息可以用来标明错误的具体位置,但由于校验息可以用来标明错误的具体位置,但由于校验 位本身也可能在传送中出错,所以只有位本身也可能在传送中出错,所以只有2r-1-r 个信息可用,
52、即个信息可用,即r位校验码只可标明位校验码只可标明2r-1-r个错个错 误信息。或误信息。或2rk+r+1 k是被传送数据的位数。是被传送数据的位数。 例如例如:用:用4个校验位能可靠传输个校验位能可靠传输24-1-4=11位信位信 息;而要校验息;而要校验32位数据则需至少位数据则需至少6个校验位。个校验位。 52 如要能检测与自动校正一位错井发现 两位错此时校验位的位数r和数据位的 位数k应满足下述关系: 2r-1 k+r (3. 19) 按式(3.19),可计算出数据位k与 校验位r的对应关系,如教材表3.8所 示。 53 一、编码方法(以四个校验位进行说明) 四个校验位最多可以校验四个
53、校验位最多可以校验11位数据。设:位数据。设: D10D9D8D7D6D5D4D3D2D1D0为为11个数据位,个数据位, P4P3P2P1分别为四个校验码,则编码规则是:分别为四个校验码,则编码规则是: 海明码的总位数等于数据位与校验位之和;海明码的总位数等于数据位与校验位之和; 每个校验位每个校验位Pi排放在排放在2i-1的位置,例如的位置,例如P4排放排放 在第在第24-1=8位,其余数据位依序排列。即:位,其余数据位依序排列。即: D10D9D8D7D6D5D4P4D3D2D1P3D0P2P1 海明码的每一位用多个校验位一起进行校验,海明码的每一位用多个校验位一起进行校验, 被校验的位
54、号等于校验它的各校验位位号和;被校验的位号等于校验它的各校验位位号和; 各校验位的值为它参与校验的数据位的异或。各校验位的值为它参与校验的数据位的异或。 54 海明码校验表 海明码位号参与校验的校验位位号参与的校验位 H1 P1 1P1 H2 P2 2P2 H3 D0 2,1 (3=2+1)P2 P1 H4 P3 4P3 H5 D1 4,1 (5=4+1)P3,P1 H6 D2 4,2 (6=4+2),P3,P2 H7 D3 4,2,1 (7=4+2+1)P4,P3,P2,P1 H8 P4 8P4 H9 D4 8,1 (8=8+1)P4,P1 H10 D5 8,2 (10=8+2)P4,P2
55、H11 D6 8,2,1 (11=8+2+1)P4,P2,P1 55 各校验位形成公式: P1=D0 D1 D3 D4 D6 D8 D10 (1) P2=D0 D2 D3 D5 D6 D9 D10 (2) P3=D1 D2 D3 D7 D8 D9 D10 (3) P4=D4 D5 D6 D7 D8 D9 D10 (4) 按上述方式按上述方式Pi的取值是采用偶校验时的取值,的取值是采用偶校验时的取值, 当采用奇校验时,当采用奇校验时,Pi则取反。这样则取反。这样Pi连同数据连同数据 位一起形成了海明码的各位。位一起形成了海明码的各位。 56 二、检查纠错(以四个校验位进行说明) 海明码数据传送到
56、接收方后,再将各校验海明码数据传送到接收方后,再将各校验 位的值与它所参与校验的数据位的异或结果进位的值与它所参与校验的数据位的异或结果进 行异或运算。行异或运算。 运算结果称为校验和。校验和共运算结果称为校验和。校验和共 有四个。有四个。 对偶校验来说,如果校验和不为零则传输对偶校验来说,如果校验和不为零则传输 过程中间有错误。而错误的具体位置则由四个过程中间有错误。而错误的具体位置则由四个 校验和依序排列后直接指明。如果四个校验和校验和依序排列后直接指明。如果四个校验和 S4S3S2S1 依序排列后等于依序排列后等于(1001)2=(9)10 时,就时,就 表明海明码的第九位也就是表明海明
57、码的第九位也就是D4发生了错误,此发生了错误,此 时只要将时只要将D4取反,也就纠正了错误。取反,也就纠正了错误。 57 校验和校验和Si的表达式:的表达式: S1 =D0 D1 D3 D4 D6 D8 D10 P1 S2 = D0 D2 D3 D5 D6 D9 D10 P2 S3 =D1 D2 D3 D7 D8 D9 D10 P3 S4 =D4 D5 D6 D7 D8 D9 D10 P4 当采用偶校验方式其传送数据正确时,校验和当采用偶校验方式其传送数据正确时,校验和 S1 S4的值分别都为的值分别都为0;当采用奇校验方式其;当采用奇校验方式其 传送数据正确时,校验和传送数据正确时,校验和
58、S1 S4的值分别都为的值分别都为 1。当不为上述值时,传送就发生了错误。当不为上述值时,传送就发生了错误。 58 解:已知解:已知D10D9D8D7D6D5D4D3D2D1D0=10110100110 由于被校验位的位号等于校验它的各校验位位号由于被校验位的位号等于校验它的各校验位位号 之和以及各校验位的取值等于它参与校验的数据位取之和以及各校验位的取值等于它参与校验的数据位取 值的异或。所以校验位的取值以及值的异或。所以校验位的取值以及所求所求海明码为:海明码为: P1=D0 D1 D3 D4 D6 D8 D10=1 P2=D0 D2 D3 D5 D6 D9 D10=1 P3=D1 D2
59、D3 D7 D8 D9 D10=1 P4=D4 D5 D6 D7 D8 D9 D10=0 D10D9D8D7D6D5D4P4D3D2D1P3D0P2P1=101101000111011 传送正确时校验和的值为传送正确时校验和的值为0 0,如果不等于,如果不等于0 0,则是几就是,则是几就是 第几位出错,是第几位出错,是7 7则是第则是第7 7位位D3出错,此时将其取反即可出错,此时将其取反即可 纠正错误。纠正错误。 例题:采用例题:采用4位校验位、偶校验方式,位校验位、偶校验方式, 写出写出10110100110的海明码。的海明码。 59 译 码 器 无 错 有 错 寄 偶 形 成 线 路寄
60、偶 形 成 线 路寄 偶 形 成 线 路寄 偶 形 成 线 路 60 以上以上 图图3.11是是H=12,数据位,数据位k=8,校验位,校验位 r=4的海明校验线的海明校验线 路,记作(路,记作(l2.8)分组码。)分组码。 图图3.ll中的中的H12,H11,.,H1是被校验码,是被校验码,D8,D7,.,D1是纠正是纠正 后的数据。在线路中,先用奇偶形成线路得到后的数据。在线路中,先用奇偶形成线路得到S4,S3,S2,S1,如,如 果果S4S1为全为全“0”,说明代码无错,则,说明代码无错,则 D8D7.DI=H12H11H10H9H7H6H5H3。如果。如果S4S1不为全不为全0, 说明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国政法大学《工程中的数值方法C》2023-2024学年第一学期期末试卷
- 郑州西亚斯学院《现代通信原理》2023-2024学年第一学期期末试卷
- 长江工程职业技术学院《公共服务质量管理》2023-2024学年第一学期期末试卷
- 消费级3D打印机打印精度改进
- 保险行业基础讲解模板
- 业务操作-房地产经纪人《业务操作》名师预测卷4
- 开学晨会发言稿
- 二零二五年政府形象广告服务合同规范
- 二零二五版国际学校外教引进与团队建设协议3篇
- 2024-2025学年新疆乌鲁木齐四十一中高二(上)期末数学试卷(含答案)
- 《道路交通安全法》课件完整版
- 向女朋友认错保证书范文
- 五分数加法和减法(课件)-数学五年级下册
- 2024年四川省绵阳市中考语文试卷(附真题答案)
- 设计材料与工艺课程 课件 第1章 产品设计材料与工艺概述
- 幼儿园反恐防暴技能培训内容
- 食品企业质检员聘用合同
- 中医诊所内外部审计制度
- 自然辩证法学习通超星期末考试答案章节答案2024年
- 2024年国家危险化学品经营单位安全生产考试题库(含答案)
- 护理员技能培训课件
评论
0/150
提交评论