1.浮点数初探
众所周知计算机存储数据
都是以二进制
形式存储的,并且主要分为定点
整数和浮点
小数两大类。浮点数由阶码
和尾数
组成,其中阶码决定了浮点数表示的范围
,而尾数则决定了浮点数表示的精度
。
2.浮点数的一般格式
3.规格化的浮点数
1.尾数用原码表示
其规格化尾数形式为:s.1xxxxxx
,即小数点后首位
必须是1。
2.尾数用补码表示
若尾数≥0,则其规格化尾数形式为:0.1xxxxxx
,若尾数<0,则其规格化尾数形式为:1.0xxxxxx
,由此观之,尾数的符号位与小数点后首位是异或
逻辑。
用补码表示的尾数范围为:
- 最大正数:0.1111111 =
- 最小正数:0.1000000 =
- 最大负数:1.0111111 =
- 最小负数:1.0000000 =
3.尾数的左规与右规
- 左规:若采用
变形补码
表示尾数,则当结果的尾数出现11.1xxx...x
或00.0xxx...x
的形式时,需将尾数左移1位,阶码减1,直到尾数为规格化形式为止。- 右规:当浮点运算结果的尾数出现
01.xxx...x
或10.xxx...x
的形式时,并不一定溢出,应先将尾数右移1位,阶码加1,然后判断阶码
是否溢出。
4.阶码的表示
在计算机中,浮点数的阶码
多用移码
来表示,移码的好处是加偏移量
将负数用正数表示,便于比较阶码的大小。例如4位移码的偏移量就是1000,从而用原本补码表示的1000在加上偏移量1000后就会变为0000,0111就变为1111便于比较大小。