现在计算机中,浮点数一般采用 IEEE 制定的国际标准,这种标准形式如下:
数符S 阶码(含阶符) 尾数
|
小数点位置
按 IEEE 标准,常用的浮点数有三种:
符号位S 阶码 尾数 总位数
短实数(单精度) 1 8 23 32
长实数(双精度) 1 11 52 64
临时实数(扩展精度) 1 15 64 80
其中 S 为数符,它表示浮点数的正负,但与其有效位(尾数)是分开的。阶码用移码表示,阶码的真值都被加上一个常数(偏移量),如短实数、长实数和临时实数的偏移量分别用十六进制表示为 7FH、3FFH 和 3FFFH。尾数部分通常都是规格化表示,即非 0 的有效位最高位总是 1,但在 IEEE 标准中,有效位呈如下形式:
1★ffff……fff
其中★表示假想的二进制小数点。在实际表示中,对短实数和长实数,这个整数位的 1 省略,称隐藏位;对于临时实数不采用隐藏位方案。
参考:《计算机组成原理》,唐朔飞,233-234 页
关于浮点数的参考文章:
1. http://www-128.ibm.com/developerworks/cn/java/j-jtp0114/index.html
2. http://www.ahcit.com/lanmuyd.asp?id=1986