一. 单精度浮点数(float):4B=32bit,至于32bit如何区分。上图:
(1). 第1bit:符号位,0表示正,1表示负
(2). 第2~9(共8位)bit: 指数位(注意+ or -127,十进制转二进制是 + ,二进制转十进制 -)
(3). 第10~32(共23位)bit: 尾数位(注意小数点左边的1,因为尾数范围总是在1~2之间,所以整数的1没有要存的必要,为了加大小数点后面的精度,可以省去1.)
下面举一个例子来详解:例如将5.5以单精度浮点数形式存入内存(IEEE754标准)
解: 进制换算 :5.5 D = 101.1B = 1.011 * 2^3 B
由二进制看出:符号位:0
指数位:3+127=120D = 1000 0010 B
尾数:01100........(后面补0,并且小数点左边的1给省去)
所以:内存中二进制位:0 1000 0010 0110 0000 0000 0000 0000000
二.双精度浮点数(double型):8B = 64bit,如何区分
第1bit:符号位
第2~12(共11位)bit:指数位(注意 + - 1023)
第13~64(共52位)bit:尾数位(同上float型)