为什么单精度浮点数的偏置常数用127而不是128,126等
以单精度浮点数规格化值为例,双精度同理
首先需要知道为啥需要偏置常数bias,如果不知道,请看后面((简洁明了)IEEE754浮点数阶码为什么需要偏置bias_DAY DAY UP!-CSDN博客)
IEEE754规定 float中 bias = 2^(k-1) - 1,k为阶码的个数=8 ,所以bias = 127
此时 E = e - bias(e是无符号的原码----------E表示最后计算真实浮点数的阶码即公式 (-1)^s * M * 2^E中的E),而e表示浮点数数据结构中的具体二进制数e,即下图蓝色框框处。
如上图所示
e的取值为 0000 0001 到 1111 1110,其中全0和全1表示非规格化和无穷大和NAN(不是一个数,not a number)
非规格化浮点数用来表示靠近0的小数,因为其阶码是 1- bias(负数) </