单精度和双精度浮点数有什么区别?
发布网友
发布时间:2023-03-24 23:15
我来回答
共1个回答
热心网友
时间:2023-10-17 19:55
单精度, float ,存储空间为4 个字节;
双精度,double,存储空间为 8 个字节;
这是它们之间最本质的区别。
由于存储空间不同,它们所能表示的数值范围也就不同(能准确表示的数值的位数不同)。
IEEE754标准
单精度(32位)浮点数的结构:
名称 长度 比特位置
符号位 Sign (S) : 1bit (b31)
指数部分Exponent (E) : 8bit (b30-b23)
尾数部分Mantissa (M) : 23bit (b22-b0)
其中的指数部分(E)采用的偏置码(biased)的形式来表示正负指数,若E<127则为负的指数,否则为非负的指数。
另外尾数部分M存储的是当把一个浮点数规范化表示后的1.zozooz...(二进制的)形式的zozooz的部分的比特串,共23位.
求值方法: (-1)^S*(1.M)*2^(E-127)
///////////////////////////////////////////////
双精度(64位)浮点数的结构与单精度相仿
名称 长度 比特位置
符号位 Sign (S) : 1bit (b63)
指数部分Exponent (E) : 11bit (b62-b52)
尾数部分Mantissa (M) : 52bit (b51-b0)
双精度的指数部分(E)采用的偏置码为1023
求值方法:(-1)^S*(1.M)*2^(E-1023)