当前位置:文档之家› 浮点数的运算方法

浮点数的运算方法


阶码位 尾数数码位 总位数
1 1 1
8 11 15
23 52 64
32 64 80
浮点数的阶码的位数决定数的表示范围, 浮点数的阶码的位数决定数的表示范围, 阶码的位数决定数的表示范围 尾数的位数决定数的有效精度 的位数决定数的有效精度。 尾数的位数决定数的有效精度。
浮点数在计算机内的格式
X = MX * 2
负数 正数
[X]补 = X 2n+1 + X 0 ≤ X < 2n -2n ≤ X ≤ 0 0
机器数
浮点数格式:关于移码的知识 浮点数格式:关于移码的知识 移码
8 位的阶码能表示 位的阶码能表示-128~+127,当阶码为 ,当阶码为-128时,其补码表 时 示为 00000000,该浮点数的绝对值 -128,人们规定此浮点数的 ,该浮点数的绝对值<2 人们规定此浮点数的 值为零, 机器零。 值为零,若尾数不为 0 就清其为 0,并特称此值为机器零。 ,并特称此值为机器零 位数值位组成的移码, 其定义为; 一位符号位和 n 位数值位组成的移码 其定义为; [E]移 = 2n + E -2n<=E<2n 负数 正数 +127 0 -128 机器数 表示范围: 00000000 ~ 11111111 表示范围: 8 位移码表示的机器数为数的真值 向右平移了 在数轴上向右平移 在数轴上向右平移了 128 个位置
(2)尾数相除:MX/MY = 0.1011/(-0.1101) )尾数相除: = -0.1101 (3) (4) (5) 已是规格化数 不必舍入 也不溢出 已是规格化数, 不必舍入, 最众的商 [MX]移 = 1 0110 1101, , 即 2-2 *(-0.1101) ( )
EX
浮点数: 浮点数 X = M s Es E m-1 ...E1 E 0 M-1 M-2 ...M-n IEEE 标准:尾数用原码 标准:
浮点数是数学中实数的子集合, 浮点数是数学中实数的子集合,由一个纯小数乘上一个指数 值来组成。在计算机内,其纯小数部分被称为浮点数的尾数 尾数, 值来组成。在计算机内,其纯小数部分被称为浮点数的尾数, 值的浮点数,要求尾数的绝对值必须 对非 0 值的浮点数,要求尾数的绝对值必须 >= 1/2,称满足这 , 种表示要求的浮点数为规格化表示; 种表示要求的浮点数为规格化表示; 规格化表示 把不满足这一表示要求的尾数, 把不满足这一表示要求的尾数,变成满足这一要求的尾数 的操作过程,叫作浮点数的规格化处理 规格化处理, 的操作过程,叫作浮点数的规格化处理,通过尾数移位和修改 阶码实现。 阶码实现。
注意:阶码计算结果的符号位在此变了一次反, 注意:阶码计算结果的符号位在此变了一次反,结果为 -2 的 移 的阶码值小, 的阶码值1100(即 +4); 码,是X的阶码值小,使其取 Y 的阶码值 的阶码值小 ( ); 因此,修改 [MX]补 =00 0011011011(即右移 2 位) 因此, (
浮点数算术运算
浮点数加减运算
X = MX * 2
EX
Y = MY * 2
EY
(1)对阶操作,求阶差: ∆E= EX -EY, )对阶操作,求阶差: 使阶码小的数的尾数右移∆E位, 其阶码取大的阶码值; 其阶码取大的阶码值; (2)尾数加减; )尾数加减; (3)规格化处理; )规格化处理; (4)舍入操作,可能带来又一次规格化; )舍入操作,可能带来又一次规格化; (5)判结果的正确性,即检查阶码上下溢出 )判结果的正确性,
浮点数格式:关于移码的知识 浮点数格式:关于移码的知识 移码
X = MX * 2 浮点数: 浮点数 X = M s Es E m-1 ...E1 E 0 M-1 M-2 ...M-n
移码表示只用于表示整数,只用在浮点数的阶码部分。 移码表示只用于表示整数,只用在浮点数的阶码部分。 一位符号位和 n 位数值位组成的移码 其定义为; 位数值位组成的移码, 其定义为; [E]移 = 2n + E -2n<=E<2n 表示范围: 表示范围: 00000000 11111111 EX
浮点数算术运算
浮点数乘除运算 X = MX * 2
EX EY
Y = MY * 2
(1) 阶码加、减:乘:EX+EY ,除:EX- EY 阶码加、 (2) 尾数乘、除:乘:EX*EY , 除:EX / EY 尾数乘、 (3) 规格化处理; 规格化处理; (4) 舍入操作,可能带来又一次规格化; 舍入操作,可能带来又一次规格化; (5) 判结果的正确性,即检查阶码上下溢出 判结果的正确性,
(2)尾数相乘:MX*MY = 0.1011*(-0.1101) )尾数相乘: = -0.10001111 (3) (4) (5) 已是规格化数 不必舍入 也不溢出 已是规格化数, 不必舍入, 最众乘积 [MX]移 = 1 1110 10001111, , 即 26 * (-0.10001111) )
浮点数在计算机内的格式
X = MX * 2
EX
浮点数: 浮点数 X = M s Es E m-1 ...E1 E 0 M-1 M-2 ...M-n IEEE 标准:阶码用移码,基为 ;尾数用原码 标准:阶码用移码,基为2; 阶码用移码,尾数用原码表示浮点数的好处: 阶码用移码,尾数用原码表示浮点数的好处: 表示浮点数的好处 (1) 机器零为浮点数的所有各位均为零; 机器零为浮点数的所有各位均为零; (2) 二浮点数比大小时,可不必区分阶码位 二浮点数比大小时, 和数据位,可视同比二定点小数一样对待 和数据位,可视同比二定点小数一样对待
浮点数在计算机内的格式
X = MX * 2 浮点数: 浮点数 X = M s Es E m-1 ...E1 E 0 M-1 M-2 ...M-n IEEE 标准:尾数用原码 标准:
按国际电子电气工程师协会规定的标准, 按国际电子电气工程师协会规定的标准,浮点数的尾数要 用原码表示, 表示正, 表示负, 用原码表示,即符号位 Ms: 0 表示正,1 表示负,且非 0 值尾数 才能满足浮点数规格化表示的要求; 数值的最高位 M-1 必为 1, 才能满足浮点数规格化表示的要求; 既然非 0 值浮点数的尾数数值最高位必定为 1,则在保存浮 , 点数到内存前,通过尾数右移, 强行把该位去掉, 点数到内存前,通过尾数右移 强行把该位去掉 用同样多的尾 数位就能多存一位二进制数,有利于提高数据表示精度, 数位就能多存一位二进制数,有利于提高数据表示精度,称这 种处理方案使用了隐藏位技术。 隐藏位技术 种处理方案使用了隐藏位技术。 当然,在取回这样的浮点数到运算器执行运算时, 当然,在取回这样的浮点数到运算器执行运算时,必须先 恢复该隐藏位。 恢复该隐藏位。 EX
浮点数在计算机内的格式
X = MX * 2
EX
X = Ms Es Em-1 ...E1 E0 M-1 M-2 ...M-n IEEE 标准:阶码用移码,基为 标准:阶码用移码,基为2
按国际电子电气工程师协会规定的国际通用标准, 按国际电子电气工程师协会规定的国际通用标准,浮点 数的阶码用整数给出,并且要用移码表示, 数的阶码用整数给出,并且要用移码表示,用作为以 2为底 为底 的指数的幂。 的指数的幂。既然该指数的底一定为 2 ,可以不必在浮点数 的格式中明确表示出来, 只需给出阶码的幂值即可。 的格式中明确表示出来, 只需给出阶码的幂值即可。 移码表示只用于表示整数,只用在浮点数的阶码部分, 移码表示只用于表示整数,只用在浮点数的阶码部分, 只用于表示整数 浮点数的阶码部分 其定义类似于整数的补码定义,差别在符号位。 其定义类似于整数的补码定义,差别在符号位。 移码的符号位是 表示负, 表示正, 移码的符号位是 0 表示负,1 表示正,与补码的符号位 正好相反,移码是指机器数在数轴上有个移位关系; 正好相反,移码是指机器数在数轴上有个移位关系; 移码的数值位则与补码的数值位完全相同 则与补码的数值位完全相同。 移码的数值位则与补码的数值位完全相同。
(4)舍入处理:采用 0 舍 1 入方案,要入,在最低位加 1 入方案,要入, )舍入处理:
11 00010101 + 00 00000001 11 00010110 (其原码表示为 1 11101010) ) (5)检查溢出否:和的阶码为 1011,不溢出 )检查溢出否: , 计算后的 [X]移 = 1 1011 11101010 ,即 23*(-0.11101010)
为运算方便, 补码形式: 为运算方便,尾数写成模 4 补码形式:
[MX]补= 00 11011011 [MY]补= 11 01010100
浮点数加运算举例
X=2010*0.11011011, Y=2100*(-0.10101100) , ( ) (1)计算阶差: )计算阶差: ∆E = EX -EY= EX +(-EY) = 1 010 + 0 100 = 0 110
四. 浮点运算器与浮点数运算
浮点运算器通常由 处理阶码的 处理尾数的 浮点运算器通常由 处理阶码的 和 处理尾数的 两个定点运算器组成
在早期的小或微型机中, 在早期的小或微型机中,浮点运算器通常以 任选件方式提供给用户 , 主要用于计算浮点数
浮点数加减运算
右归) 对阶 执行加减 规格化 舍入 (右归)判溢出 右归
(2)尾数求和:00 0011011011 )尾数求和: + 11 01010100 11 1000101011
浮点数加运算举例
X=2010*0.11011011, Y=2100*(-0.10101100) , ( ) (3)规格化处理: )规格化处理:
相加结果的符号位与数值的最高位同值, 相加结果的符号位与数值的最高位同值,应执行一次 结果的符号位与数值的最高位同值 左规操作,故得 左规操作 故得 [MX]补 = 1 000101011,[EX]移 = 1 011 ,
相关主题