菜鸟笔记
提升您的技术认知

计算机浮点数的格式,单精度与双精度的区别

在C/C++中float是32位的,double是64位的,两者在内存中的存储方式和能够表示的精度均不同,目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。

无论是float还是double,在内存中的存储主要分成三部分,分别是:

(1)符号位(Sign):0代表正数,1代表负数

(2)指数位(Exponent):用于存储科学计数法中的指数部分,并且采用移位存储(127+指数)的二进制方式。

(3)尾数位(Mantissa):用于存储尾数部分

单精度是这样的格式,1位符号,8位指数,23位小数。

对于float类型,他的指数部分有8bit,可以表示-127~128,其中有一位符号位。

双精度是1位符号,11位指数,52位小数。