尾数和指数
(2013-11-17 10:24:46)
标签:
java学习如何学习java学习java哪里好清软国际java学习东方清软教育 |
分类: JAVA学习 |
尾数和指数java学习 清软国际 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际java学习 计算机软件学习
在 Java 6 中添加的两个 getExponent() 方法在表示浮点数或双精度数时返回无偏差 指数。对于浮点数,这个数字的范围是 -125 到 +127,对于双精度数,这个数字的范围是 -1022 到 +1023(Inf 和 NaN 为 +128/+1024)。例如,清单 1 根据更常见的以 2 为底数的对数比较了 getExponent() 方法的结果:
java学习 清软国际 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际java学习 计算机软件学习
Math.log(x)/Math.log(2) 和
Math.getExponent()
public class ExponentTest {
}java学习 清软国际 软件工程师
如何学习java 学习java哪里好 东方清软java培训 清软国际java学习 计算机软件学习
对于使用舍入的一些值,Math.getExponent() 比一般的计算要准确一些:
...
2.68435456E8
5.36870912E8
1.073741824E9
2.147483648E9
4.294967296E9
java学习 清软国际 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际java学习 计算机软件学习
如果要执行大量此类计算,Math.getExponent() 会更快。不过需要注意,它仅适用于计算 2 的幂次方。例如,当改为 3 的幂次方时,结果如下:
x
...
1.0
3.0
9.0
27.0
81.0
getExponent() 不处理尾数,尾数由 Math.log() 处理。通过一些步骤,就可以找到尾数、取尾数的对数并将该值添加到指数,但这有些费劲。如果想要快速估计数量级(而不是精确值),Math.getExponent() 是非常有用的。java学习 清软国际 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际java学习 计算机软件学习
与 Math.log() 不同,Math.getExponent() 从不返回 NaN 或 Inf。如果参数为 NaN 或 Inf,则对应的浮点数和双精度数的结果分别是 128 和 1024。如果参数为 0,则对应的浮点数和双精度数的结果分别是 -127 和 -1023。如果参数为负数,则数字的指数与该数字的绝对值的指数相同。例如,-8 的指数为 3,这与 8 的指数相同。java学习 清软国际 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际java学习 计算机软件学习
没有对应的 getMantissa() 方法,但是使用简单的数学知识就能构造一个:
尽管算法不是很明显,但还是可以通过位屏蔽来查找尾数。要提取位,仅需计算 Double.doubleToLongBits(x) & 0x000FFFFFFFFFFFFFL。不过,随后则需要考虑正常数字中多出的 1 位,然后再转换回范围在 1 到 2 之间的浮点数。java学习 清软国际 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际java学习 计算机软件学习
学习java哪里好?
学习java的视频:http://i.youku.com/u/UMTIwMTg2NjczMg
视频密码:sinojava
java学习 清软国际 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际java学习 计算机软件学习