200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java 浮点数的n次方_java中浮点数表示方式

java 浮点数的n次方_java中浮点数表示方式

时间:2023-10-27 19:59:42

相关推荐

java 浮点数的n次方_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 为尾数值,占用空间为23位,但是根据 e 的取值,有 24 位精度。所以引入了一个附加位,规则如下: m的值会根据e的值会动态变化。 当8个指数位e全部为0,尾数位m附加0(在左边附加),否则,附加1.

以-5的表示为:

System.out.println( Integer.toBinaryString(Float.floatToRawIntBits(-5)) );

结果为:

1 1000 0001 0100 0000 0000 0000 0000 000

符号位 指数位 尾数位

指数位1000 0001不全为0,所以尾数位(从左边)附加1,实际尾数位为:

1 + 010 0000 0000 0000 0000 0000 = 1010 0000 0000 0000 0000 0000

按照上面的公式:

计算各部份的值:

1) sflag: -1

2) m的计算复杂点,尾数位表示2的指数次方的和。计算过程:

3) 尾数位:

所以,结果为:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。