浮点数的表⽰——基本格式、规格化、表⽰范围
⼀、浮点数的表⽰格式
浮点数表⽰法是指以适当的形式将⽐例因⼦表⽰在数据中,让⼩数点的位置根据需要⽽浮动。这样,在位数有限的情况下,既扩⼤了数的表⽰范围,⼜保持了数的有效精度。
阶码:阶码是整数,阶符和 m 位阶码的数值部分共同反映 浮点数的表⽰范围及⼩数点的实际位置 ,常⽤移码或补码表⽰。IEEE754标准中采⽤移码的表⽰形式。
尾数:数符表⽰浮点数的符号,尾数的数值部分的位数 n 反映浮点数的 精度 ,常⽤原码或补码表⽰。IEEE754标准中采⽤原码的表⽰形式
浮点数的基数什么意思
由于 b 的尾数含6位,⽽存储空间仅剩下5位,故舍弃了最后⼀位,导致 b 的精度下降
⼆、规格化浮点数
规格化:规定尾数的最⾼数位必须是⼀个有效值。⾮规格化浮点数要进⾏规格化操作才能变成规格化浮点数。
左规:当浮点数运算的结果为⾮规格化时要进⾏规格化处理,将尾数算术左移⼀位,阶码减1(基数为2时)。
右规:当浮点数运算的结果尾数出现溢出(双符号位为01或10)时,将尾数算术右移⼀位,阶码加1(基数为2时)。
三、规格化浮点数的特点
当浮点数尾数的基数为2时,原码规格化数的尾数最⾼位⼀定是1,补码规格化数的尾数最⾼位⼀定与尾数符号位相反。
基数不同,浮点数的规格化形式也不同。当基数为4时,原码规格化形式的尾数最⾼两位不全为0;当基数为8时,原码规格化形式的尾数最⾼3位不全为0
四、浮点数的表⽰范围
由于阶码可以⽤移码或补码表⽰,尾数可以⽤原码或补码表⽰,所以不同形式的浮点数的表⽰范围是不同的。(但必须遵守规则,原码规格化数的尾数最⾼位⼀定是1,补码规格化数的尾数最⾼位⼀定与尾数符号位相反。)
运算结果⼤于最⼤正数时称为正上溢,⼩于绝对值最⼤负数称为负上溢。数据⼀旦发⽣上溢,计算机必须中断运算操作,进⾏溢出处理。
运算结果在0⾄最⼩正数之间时称为正下溢,在0⾄绝对值最⼩负数之间时称为负下溢。数据发⽣下溢时,浮点数值趋于0,计算机仅将其当作机器0处理。