浮点数的表示
用科学计数法表示浮点数
N=r的E次方 x M
阶码常用补码或移码表示(决定表示范围)
尾数常用原码或补码表示(反应浮点数的精度)
规格化浮点数
规格化:规定尾数的最高位数必须是一个有效值
左规:当浮点数运算的结果为非规格化时要进行规格化处理,将尾数左移一位,阶码减一
右规:当浮点数运算结构尾数出现溢出时,将尾数右移一位,阶码加一
IEEE 754标准
IEEE 754标准规定常用的浮点数格式有短浮点数(单精度 float型)长浮点数(双精度 double型)
移码
移码=真值+偏置值
默认移码偏置值为128D
在偏置值为128的情况下,移码取值就是补码符号位取反。
但是在IEEE754标准中阶码部分通过移码表示,但是这个移码的偏置值为127D并不是128D,这里的移码通过补码符号位取反计算之后还要减去1,或者一直接移码转换成十进制减去127,注意:真值为-128的移码(127D)为11111111、-127的移码(128D)为00000000
IEEE 754的结构
阶码部分由移码表示,位数部分为原码表示,因为要规格化浮点数后表示,所以最高位肯定为一,所以为尾数数是隐藏了最高1
浮点数的加减运算
如:9.852111012+9.960071010
1.对阶:把阶数小的向阶数大的对齐 把9.960071010变成0.09960071012
2.尾数加减
3.规格化
4.舍入
5.判断溢出
浮点数的加减运算——舍入
强制类型转换
总结
真题
IEEE 754 单精度浮点格式表示的数中,最小的规格化正数是,1.0x2-126,754的阶码用移码表示,8位,能够表示1-254,754移码的偏移量为127D,所以移码可以表示的最小真值为1-127=-126
2016:
对阶操作不会引起阶码的上溢或者下溢出但是可能会影响精度,右规和尾数舍入都可以引起阶码上溢,左规时可能引起阶码下溢出,尾数溢出时结果不一定会溢出,但是会丢失一部分精度,
2012:float类型IEEE754单精度浮点数格式,能表示的最大整数是阶码127,尾数23位全是1,2127x(2-2-23)=2128-2104