当前位置:
文档之家› 第2章 计算机中数据信息的表示和运算-浮点表示
第2章 计算机中数据信息的表示和运算-浮点表示
EX=+7=(+00111)2,MX=-0. 111101101 [EX]补=000111, [ MX ]补=1. 000010011 则:[X]浮= 1 000111 000010011 (2)Y=(34/128 ) 10 =(0.010001)2 =0. 10001×2-1 EY=-00001,MY=0. 100010000 [EY]补=111111, [ MY ]补=0. 100010000 则:[Y]浮= 0 111111 100010000
课堂练习
1、已知[X]补=1.1010,求X= ? 1.0110 [X]原= ? [X]反= ? 1.1001 [X]移= ? 0.1010 2、求以下各机器数的十进制真值:
-0.0110
[X]原 = 1,0000000 ,则X = ? [X]补 = 1,0000000 ,则X = ? [X]反 = 1,0000000 ,则X = ? [X]移 = 1,0000000 ,则X = ? [X]原 = 1,1101 ,则X = ? [X]补 = 1,1101 ,则X = ? [X]反 = 1,1101 ,则X = ? [X]移 = 1,1101 ,则X = ? [X]原 = 0,1000 ,则X = ? [X]补 = 1,1000 ,则X = ? [X]反 = 0,1000 ,则X = ? [X]移 =0,1000 ,则X = ?
X= (-1)s*1.M*2E-127 =+(1.011011)* 23 =+1011.011
=11.375
例2:将数(20.59375)10转换成754标准的32位浮点数二进 制存储格式。 解: 首先转换为二进制数 20.59375=10100.10011 移动小数点,使其在1,2位之间 10100.10011=1.010010011 * 24 , e=4 于是:S=0, E=4+127=131,M=010010011 于是得到32位浮点数的二进制存储格式为: 0 100 0001 1010 0100 1100 0000 0000 0000 =(41A4C000)16
数值范围:一种数据类型所能表示的最大值和最 小值 数据精度:实数所能表示的有效数字位数。
2、浮点机器数的规格化表示
规格化方法:调整阶码使尾数满足下列关系:
尾数为原码表示时,无论正பைடு நூலகம்应满足1/2<|M |<1
即:小数点后的第一位数一定要为1。
正数的尾数应为0.1x….x
负数的尾数应为1.1x….x 尾数用补码表示时,小数最高位应与数符符号位相反。 正数应满足 1/2≦M<1,即 0.1x….x 负数应满足 -1/2 > M≥ -1,即 1.0x….x(M=-1/2除外)
定点数的表示范围
一个字长为32位的定点整数机器,最高位为符 号位,机器中的数采用补码表示形式,则该机 器所能表示的数的范围如下:
-231
0
231-1
数轴
浮点数的表示范围
32位字长的机器中,数采用浮点表示,符号位占1位, 尾数位占23位,阶符占1位,阶码占7位。阶码用移 码表示,尾数用原码表示,采用规格化浮点数表示形 式,则其表数范围:
5 机器零
定义:当一个浮点数的尾数为0,不论阶码为何 值,或者当阶码的值比能表示的最小值还小时, 不论尾数为何值,都把浮点数看作零。
例:阶码,尾数都用补码表示时: 1000000000000000000000000000000 当采用移码表示时: 0000000000000000000000000000000 与定点数判别“0”一致。
求: [X/2]补,[X/4]补 ,[Y/2]补,[Y/4]补
[X]补 =0.1011
[Y]补=1.1011
[Y/2]补=1.11011
[X/2]补=0.01011
[X/4]补=0.001011
[Y/4]补=1.111011
四、浮点机器数的表示方法
十进制数的科学表示法(scientific notation) 例如: 156,000,000=1.56*108 -0.000,000,28=-0.28*10-6
二进制的科学记数表示法,即:小数点的 位置根据需要而浮动,这就是浮点数。
1、浮点机器数的格式
1 、浮点数的一般形式
阶符Ef 阶码E1..m 尾符Mf 尾数M1..n N=+/-RE x M 其中,N:要表示的浮点数的真值; R(Radix):基数为2的整数次幂,常取2; M(Mantissa):尾数,一般为定点小数; E(Exponent):阶码,一般为定点整数。 Mf :表示浮点数的正负
X=-0 X =(- 128)10 X = (-127)10 X=0 X = - 1101B X = - 0011B X = - 0010 B X = +1101B X = +1000 B X = - 1000 B X = +1000B X = -1000 B
例:已知:X=0.1011 Y=-0.0101
例1:若浮点数X的754标准存储格式(41360000)16 ,求其 浮点数的十进制数值。 解:将16进制数展开后,可得到二进制格式: 0 100 0001 0011 0110 0000 0000 0000 0000 e=E-127=100 0001 0-01111111=00000011=3 包括一位隐含位的尾数 1.M=1. 011 0110 0000 0000 0000 0000 = 1.011011 于是:
1、浮点机器数的格式
可见,一个浮点数在机器中是用两个定点数来
表示的。 例:[ N ]补=1101;1.110101
N=-2(-0011)*0.001011 即:N=-0.000001011
2、浮点机器数的规格化表示
浮点数可以表示成多种形式:
0.11 026 => 1.10 25 => 0.000110 29 ……
例:
32位浮点二进制数,8位为补码表示的阶 码,24位(含1位符号位)为补码表示的规格 化尾数,试指出它所表示的最大正数与最小正 数数据格式。 最大正数:0111 1111 0.111…11 最小正数:1000 0000 0.100…00
3 机器数的移(增)码表示法
定义:设定点整数移码序列Xn Xn-1„„ X0,则, [X]移 = 2n + X 2n>X≥-2n 即无论X是正还是负,一律加上2n,称2n为基数 移码就是在真值X上加一个常数(偏置值),相当于X在数 轴上向正方向平移了一段距离,这就是“移码”一词的 来由。 [X]移=偏置值+X 传统上,对于字长8位的定点整数,偏置值为27。 在IEEE754中,偏置值为(27-1)
IEEE 754格式参数
参数 字宽(位数) 指数宽(位数) 指数偏移 最大指数 最小指数 数的范围 有效尾数 指数数目 分数数目 值的数目 单精度 32 8 127 127 -126 10-38,10+38 23 254 223 1.98*231 双精度 64 11 1023 1023 -1022 10-308,10+308 52 2046 252 1.99*263
(用16进制表示此结果则为:9B4H)
练习:一浮点数的阶码为6位(包括一位 阶符),尾数为10位(包括一位数符), 阶码与尾数均采用补码表示,阶码的底 为2。写出X与Y的规格化浮点数。 (1)X=-123.25 (2)Y=34/128 (1)X=(-123.25)10 =(-1111011.01)2 =-0. 111101101×2+7
根据IEEE 754 国际标准,常用的浮点数格式有3种,阶码的底隐含 为2。 短实数又称为单精度浮点数,长实数又称为双精度浮点数,临时实 数主要用于进行浮点数运算时保存临时的计算结果。
数据类型 短实数 长实数
总位数 32 64
尾数位数 24 53
阶码位数 8 11
临时实数
80
65
15
4 IEEE 754浮点数标准
为了简化浮点数的操作,需要对其进行规 格化,规格化后的浮点数具有下列形式:
±0.1bbb…bb*R±E
2、浮点机器数的规格化表示
若上述浮点数N的尾数M在如下范围内1/R ≤ |M| < 1(1/2 ≤|M| < 1) 则N叫做规格化的浮点数,一般机 器中以此形式存储、运算。 在字长一定的情况下,规格化的浮点数精度最 高。
3 机器数的移(增)码表示法
例1:X=1011101 [X]移=27+X=10000000+1011101=11011101 [X]补=01011101 例2:X=-1011101 [X]移= 27 +X=10000000-1011101=00100011 [X]补=10100011
4 IEEE 754浮点数标准
练习: 将X=-19/64表示成浮点规格化数(阶码3位,阶 符1位,尾数7位,尾符1位),阶码采用原码,尾数 用规格化,用补码的形式表示。 定点数:[X]补=1.1011010; X=-19/64=(-10011*2-110)2=-0.010011=2-01*-0.10011 E=-01,E 原=1001; M=-0.1001100,M补=1.0110100 浮点数: 1,001; 1.0110100
开发该标准是为了程序从一个处理器移植到另一个处理器。 IEEE标准定义了32位的单精度和64位的双精度两种格式。它们的 指数段分别为8位和11位,隐含的基值是2。
0 1 89 阶码 尾数 (23) 11 12 11位阶码 52位尾数 63 31
数符号位
01
4 IEEE 754浮点数标准