1 浮点数概述
浮点数是计算机存储实数的一种方式。它无法存储任意的十进制实数,部分实数仅能在浮点数定义的精度下近似表示。在计算机中,普遍使用的是IEEE 754标准的浮点数,包括一个32位的单精度浮点数与64位的双精度浮点数。
浮点数分为三部分,符号位(Sign)、指数位(Exponent)、基数(Mantissa)位。
设符号位为 S ,指数位为
以上公式只是对浮点数进行大致的说明。在实际的浮点数中,它所代表的十进制并不是使用直接上述公式计算,对于指数位与基数位在不同标准中有着不同的规定。不要用以上公式进行浮点数的十进制转换
2 IEEE 754的32位浮点数表示
IEEE 755 标准中,规定了符号位为1位、指数位为8位、基数位为23位。
在IEEE754标准中,除了上述的浮点数的说明外,有几处不同:
- 指数位的值不是实际的指数值,它是实际值加上127
- 基数位省略了基数位的最右边的1,它实际上代表了一个24位的大于0小于2的实数。
以上说明可能不够充分,接下来通过讲解一个十进制数如何表示成一个近似的浮点数来说明该标准下浮点数表示方法。
3 十进制数转换为浮点数(IEEE754 32位)
接下来,以实数3.14来做例子,讲述如何将十进制数转换为浮点数。
1. 判断该数是否在表示范围内: 2−126<3.14<2127 ,在该范围内,可以表示。