单精度浮点数的表示
- 先来看一下十进制的科学计数法,例如十进制数112.5用科学计数法表示,可以表示为1.125*102。
- 浮点数由符号位、阶码和尾数三个部分组成,首先将112.5转为二进制数,结果为1110000.1,然后将这个2进制数使用类似科学计数法的方式来表示,1.110001*26,这个6是它的指数也称为阶码,小数点后的1100001就是它的尾数。
- 单精度浮点数一般由4个字节 32位组成,这32位中的第一位为符号位,1.110001*26为整数,所以符号位为0,第二到第九这八位用来存放阶码,但是浮点数在表示阶码时,需要在阶码的基础上加一个偏移量,单精度浮点数的偏移量为127(111 1111),阶码6加上偏移量127,结果为133,133转为二进制结果为1000 0101,所以这八位(阶码)为1000 0101,最后的23位用来表示尾数部分,尾数部分为小数点后面的部分1100001,其他的位置补0,因为整数部分这个1是固定的,它是尾数部分的隐藏位,可以省略不写,所以只用23位就可以表示24位有效位数了,
- 112.5 0 1000101 11000010000000000000000
- 二进制数0.0101使用单精度浮点数表示
- 第一步将这个二进制数使用类似科学计数法的方法表示,结果为1.01*2-2
- 它是整数所以符号位为0,阶码-2加偏移量127结果为125,125转为二进制结果为111 1101,再前面补一个0,补够八位,这就是阶码部分。
,再前面补一个0,补够八位,这就是阶码部分。 - 尾数部分则是小数点后面的01,其他的位置补0,这就是二进制数0.0101使用单精度浮点数的表示方法。