计算机中浮点数的表示
计算机中浮点数的表示,按IEEE754标准位 V=pow(-1,s)*M*pow(2,E)
符号(signed): s决定这个浮点数是整数还是负数,当硕士,这个浮点数位正,当s=1是,为负
尾数(siginificant):M是一个2进制小数,它的范围是[1,2)或者[0,1)
阶码(exponent):E的作痛是对浮点数加权,这个权重是2的E次幂
在单精度(32位float)中,s占1位,E占8位,M占23位
在双精度(64位double)中,s占1位,E占11位,M占52位
根据E的编码,可将浮点数分成三种不同的情况:(以32位float为例)
No1: 规格化浮点数
当E的编码既不是00000000并且也不是11111111是,此时的浮点数成为规格化浮点数,
No2:
当E的编码是00000000是,此时的浮点数成为非规格化浮点数.非规格化浮点数的作用表现在以下两个方面:
1: 非规格化浮点数能表示0.0 +0.0=0 00000000 00000000000000000000000
-0.0=1 00000000 00000000000000000000000
2:非规格化浮点数能表示无限接近0的数
No3: 特殊数
当E的编码是 11111111是,我们称此时的浮点数是特殊数字
当M的编码位全0时,s=0我们称为正无穷大;s=1我们成为负无穷大
当M的编码非全0时,此时我们称浮点数是NaN(Not a Number)