单精度float型在内存中占32bits即4个字节。那么它在内存中的储存形式是什么呢?
它的组成如上图:分为符号位(0正,1负),指数位,尾数位。
接下来看几个例子:
1、浮点型1.5在内存中的二进制形式是 0011 1111 1100 0000 0000 0000 0000 0000
0:符号位 01111111:指数位 10000000000000000000000:尾数位
那么假如说我们知道一个float型的数据它在内存中表示如上式,怎么才能计算出它表示多少呢?
我们将指数位减去127(因为需要表示负指数)得到小数点右移了多少位,上式中右移了0位。float表示时的整数位一直是1。也就是得到1.10000000000000000000000,整数位是1乘以2^0,小数位是1乘以2^-1。得到1.5。