天天看点

浮点数在内存中的存储格式

根据IEEE-754标准,浮点数有单精度浮点型(float)和双精度浮点型(double)两种。

在内存中的存储格式:

单精度浮点型(float):  

占用4个字节(32bit)的存储空间。组成:1bit符号位+8bit阶码+23bit尾数。

阶码的偏移基数为0x7f。

双精度浮点型(double):

占用8个字节(64bit)的存储空间。 组成:1bit符号位+11bit阶码+52bit尾数。

 阶码的偏移基数为0x3ff。

实例:

1、将10进制数112.125转换为二进制的单精度浮点型。

step1->整数部分:112对应的二进制数为:1110000=1.110000*2^6;(1)

            小数部分:0.125对应的二进制数为:0.001;

            由(1)的次方数可得,阶码127+6=133(10000101)。

step2->依据二进制数的规格化表示方法,所有尾数均表示为1.XXXXX形式,其中整数部分1省略。

            则,112.125的尾数可表示为1100 0000 1000 0000 0000 000(共23位);

step3->因此112.125的二进制存储格式为:0100 0010 1110 0000 0100 0000 0000 0000 

           即0x42 e0 40 00(little endian储存处方式)。