Double型数据的存储方式和计算方法

Double型数据的存储方式是什么?

目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格:

            符号位     阶码      尾数     长度

float           1          8        23     32

double          1         11        52     64

这里的阶码是无符号的,但是实际上阶码是有符号的,所以要把实际的指数加2^7-12^10-1。例如2double型阶码就是100 0000 0000

尾数是把数据用科学计算法表示,并且小数点前只有一位,存时把小数点前的1去掉。

例如3的二进制是1.1*2^1,所以,double浮点数就是0x4008 0000 0000 0000

而有的小数的二进制数是无穷的,这就是浮点数的精度。

5.3的浮点数:

51010.30.010011001100110011001100110011001100110011…

整体就是1.010100110011001100110011001100110011…*2^2

故浮点数为4015 33333333 3333

你可能感兴趣的:(学习心得)