求32位浮点所能表示的最大正数值,最小负数值,和最小绝对值怎么算?

来源:百度知道 编辑:UC知道 时间:2024/06/24 14:07:13
水平低,请易懂些。

你说在computer science里么?
IEEE 754 binary floating point representation之下,32位float point number,最左边一位(bit 31)表示符号(正负),接下来8位(bit 30 - 23)表示指数,剩下23位(bit 22 - 0)表示数值(比较复杂,具体见公式).

(-1)^s × (1 + m / 2^23) × 2^(e - 127)
s是第一位,e是8位指数,m是数值。

可表示的范围是 ±1.40129846432481707e-45 to ±3.40282346638528860e+38.

浮点分为单精度和双精度
双精度浮点运算,表示的范围要宽,根据不同的软件,有不同的范围。

浮点数7位有效数字。
双精度数16位有效数字。

浮点数取值范围:
负数取值范围为 -3.4028235E+38 到 -1.401298E-45,正数取值范围为 1.401298E-45 到 3.4028235E+38。

双精度数取值范围:
负值取值范围-1.79769313486231570E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。

C/C++中浮点数的表示遵循IEEE 754标准。
一个浮点数由三部分组成:符号位S、指数部分E(阶码)以及尾数部分M(如下)。
Floating
S--------E-------M
1位-----8位-----23位

Double
S--------E-------M
1位-----11位----52位

十进制数的换算计算公式为(n^m表示n的m次幂,B表示前面的数字是二进制):

S * 2^(E-127) * (1.M)B

浮点数的精度取决于尾数