浮点数的科学计数表示方法,java中不等于怎么表示
java虚拟机的浮点数分为float和double两种,分别为32位和64位。 参考IEEE 754规范处理浮点数。 以float为例,分析一下float数的表示方法。
float的32位分为表示浮点数:的三个部分
浮点数的计算公式为:
分析:
1 )在编码比特s取值为0时,sflag为1,s为1时,sflag为-1.因此有:
2 ) e是指数位数,用8位数表示
3 ) m为末尾的值,占有空间为2.3位数,但根据e的取值不同,有2.4位数的精度。 因此,引入附加比特,规则如下, m的值根据e的值动态变化。 如果8个指数位数e都是0,则尾数位数m加0 (),否则加1。
将-5的显示设为:
system.out.println (integer.tobinarystring (float.floattorawintbits (-5 ) ); 结果是,11000 000100000000000000000编码比特指数比特尾数比特指数比特1000000000001不都是0,所以添加尾数比特(从左开始) 1,实际的尾数比特为:
1010000000000000=101000000000000000=101000000000000000根据上述公式:
计算各部分的值:
1 ) sflag: -1
2 ) m的计算很复杂,尾数表示2的指数乘方之和。 计算过程:
3 )尾数位数:
所以,结果是: