现在的位置: 首页 > 综合 > 正文

henson.midp.Float浮点类介绍 (您是本帖的第81访问者!)

2012年09月07日 ⁄ 综合 ⁄ 共 8723字 ⁄ 字号 评论关闭
henson.midp.Float浮点类介绍 (您是本帖的第81访问者!)

看此文前,你可以首先参考一下《J2ME中定点库MathFP使用入门》一文。MathFP是一个定点的浮点模拟工具,这套类库没有封装细节,而是把一系列的转换操作留给了用户,这些频繁的操作非常容易出错,但是效率上占一定的优势。考虑到极少有J2ME设备设有浮点运算单元,特别是在CLDC1.0设备上不适合使用沉重的浮点运算。所以如果你的应用需要进行沉重的浮点运算,比如基于浮点的游戏,可以采用MathFP。这样至少比你采用手动的乘除法来的优雅。而对于并非沉重的浮点计算,我推荐大家使用由_Nikolay Klimchuk_ 开发的henson.midp.Float库(ver 1.01) ,一个封装良好的Float类。无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
henson.midp.Float类简介
无线论坛[http://www.j2me.com.cn/bbs] 
首先到
http://henson.newmail.ru/j2me/Float.java下载源代码。无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
henson.midp.Float类非常适合科学计算,他的范围很大,具有64位的尾数(mantissa),64位的指数。该Float类和J2SE标准的Float类十分的相似,提供了完备的方法,参考下表:
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
非静态成员 非静态成员 常量
无线论坛[http://www.j2me.com.cn/bbs] 
Float()
无线论坛[http://www.j2me.com.cn/bbs] 
Float(long value)
无线论坛[http://www.j2me.com.cn/bbs] 
Float(long value, long e)
无线论坛[http://www.j2me.com.cn/bbs] 
Float(Float value)
无线论坛[http://www.j2me.com.cn/bbs] 
String toString()
无线论坛[http://www.j2me.com.cn/bbs] 
Float Add(Float value)
无线论坛[http://www.j2me.com.cn/bbs] 
Float Sub(Float value)
无线论坛[http://www.j2me.com.cn/bbs] 
Float Mul(long value)
无线论坛[http://www.j2me.com.cn/bbs] 
Float Mul(Float value)
无线论坛[http://www.j2me.com.cn/bbs] 
Float Div(long value)
无线论坛[http://www.j2me.com.cn/bbs] 
Float Div(Float value)
无线论坛[http://www.j2me.com.cn/bbs] 
boolean Great(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
boolean Less(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
boolean Equal(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float Neg()
无线论坛[http://www.j2me.com.cn/bbs] 
long toLong()
无线论坛[http://www.j2me.com.cn/bbs] 
boolean isError() Float sin(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float cos(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float sqrt(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float tan(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float asin(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float acos(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float atan(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float atan2(Float x, Float y)
无线论坛[http://www.j2me.com.cn/bbs] 
Float parse(String str, int radix)
无线论坛[http://www.j2me.com.cn/bbs] 
Float exp(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float log(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float log10(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float pow(Float x, Float y)
无线论坛[http://www.j2me.com.cn/bbs] 
Float ceil(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float floor(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float abs(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float Int(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float Frac(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float toRadians(Float x)
无线论坛[http://www.j2me.com.cn/bbs] 
Float toDegrees(Float x) Float ERROR
无线论坛[http://www.j2me.com.cn/bbs] 
Float ZERO
无线论坛[http://www.j2me.com.cn/bbs] 
Float ONE
无线论坛[http://www.j2me.com.cn/bbs] 
Float PI - pi
无线论坛[http://www.j2me.com.cn/bbs] 
Float E - Euler's constant
无线论坛[http://www.j2me.com.cn/bbs] 
Float LOG10 - Natural logarithm of 10
无线论坛[http://www.j2me.com.cn/bbs] 
Float LOGdiv2 - Natural logarithm of 0.5
无线论坛[http://www.j2me.com.cn/bbs] 
Float PIdiv2 - pi/2
无线论坛[http://www.j2me.com.cn/bbs] 
Float PIdiv4 - pi/4
无线论坛[http://www.j2me.com.cn/bbs] 
Float PIdiv6 - pi/6
无线论坛[http://www.j2me.com.cn/bbs] 
Float PIdiv12 - pi/12
无线论坛[http://www.j2me.com.cn/bbs] 
Float PImul2 - pi*2
无线论坛[http://www.j2me.com.cn/bbs] 
Float PImul4 - pi*4
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
Float的使用和大多数提供源代码的第三方库一样,只要直接将其加入到你的工程中来就可以了。
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
Float类的license很特别,根据作者的要求,需要你做到以下几点:
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
一个含有此Float类的你的产品的copy和以及对应的license
无线论坛[http://www.j2me.com.cn/bbs] 
在about菜单中增加“henson.midp.Float (C) by Nikolay Klimchuk ”版权提示
无线论坛[http://www.j2me.com.cn/bbs] 
如果有官方网站,则网站应该提供到
http://henson.newmail.ru的链接 无线论坛[http://www.j2me.com.cn/bbs] 
测试数据
无线论坛[http://www.j2me.com.cn/bbs] 
也许你最关心这个模拟类的速度。以下是官方的测试数据供你参考。
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
测试程序下载地址:
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
http://henson.newmail.ru/j2me/FloatTest.jad 无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
机型 sin, ms
无线论坛[http://www.j2me.com.cn/bbs] 
100次 cos, ms
无线论坛[http://www.j2me.com.cn/bbs] 
100 次 tan, ms
无线论坛[http://www.j2me.com.cn/bbs] 
100 次 add, ms
无线论坛[http://www.j2me.com.cn/bbs] 
10000 次 mul, ms
无线论坛[http://www.j2me.com.cn/bbs] 
10000 次 div, ms
无线论坛[http://www.j2me.com.cn/bbs] 
10000 次 sqrt, ms
无线论坛[http://www.j2me.com.cn/bbs] 
1000 次
无线论坛[http://www.j2me.com.cn/bbs] 
移动电话
无线论坛[http://www.j2me.com.cn/bbs] 
/-\ Nokia
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
N-Gage 1016 594 1641 1297 3438 6328 4219
无线论坛[http://www.j2me.com.cn/bbs] 
6310i 4370 2461 7089 5363 14673 24131 20402
无线论坛[http://www.j2me.com.cn/bbs] 
3510i 4202 2435 6837 5324 14550 22370 16678
无线论坛[http://www.j2me.com.cn/bbs] 
6100 4407 2534 7065 5410 14905 23794 16069
无线论坛[http://www.j2me.com.cn/bbs] 
6610 4381 2511 7158 5492 15056 23874 17318
无线论坛[http://www.j2me.com.cn/bbs] 
3650 1094 609 1766 1297 3484 7031 4641
无线论坛[http://www.j2me.com.cn/bbs] 
7650 765 453 1265 1031 2515 5328 *
无线论坛[http://www.j2me.com.cn/bbs] 
6600 328 157 500 188 547 3235 1328
无线论坛[http://www.j2me.com.cn/bbs] 
6220 6086 3623 10149 8325 22395 32238 23670
无线论坛[http://www.j2me.com.cn/bbs] 
7600 494 290 795 614 1578 2482 1622
无线论坛[http://www.j2me.com.cn/bbs] 
3100 6727 3967 10949 9054 24905 36291 26268
无线论坛[http://www.j2me.com.cn/bbs] 
6230 (3.14) 965 538 1654 1088 3212 5165 *
无线论坛[http://www.j2me.com.cn/bbs] 
6230 (4.28) 705 414 1197 857 2387 3669 2378
无线论坛[http://www.j2me.com.cn/bbs] 
6230i (3.23) 627 351 994 619 1747 3813 1830
无线论坛[http://www.j2me.com.cn/bbs] 
7250 4254 2431 7052 5466 14943 22483 14524
无线论坛[http://www.j2me.com.cn/bbs] 
7610 281 141 438 187 453 2719 1109
无线论坛[http://www.j2me.com.cn/bbs] 
6260 281 141 406 157 453 2766 1187
无线论坛[http://www.j2me.com.cn/bbs] 
6630 110 63 156 94 203 1094 500
无线论坛[http://www.j2me.com.cn/bbs] 
/-\ Siemens
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
S55 28899 16559 50899 36306 101370 200670 169181
无线论坛[http://www.j2me.com.cn/bbs] 
M55 30441 17025 53584 38420 105500 207800 *
无线论坛[http://www.j2me.com.cn/bbs] 
SX1 1110 672 1875 1563 3985 7141 4203
无线论坛[http://www.j2me.com.cn/bbs] 
CX65 844 258 342 327 443 1219 923
无线论坛[http://www.j2me.com.cn/bbs] 
S65 212 139 337 245 466 1191 798
无线论坛[http://www.j2me.com.cn/bbs] 
M75 (new) 267 153 309 240 420 1186 790
无线论坛[http://www.j2me.com.cn/bbs] 
/-\ SonyEricsson
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
K300i (new) 739 354 1094 646 1716 3041 2389
无线论坛[http://www.j2me.com.cn/bbs] 
K750i 654 319 980 521 1496 2848 1970
无线论坛[http://www.j2me.com.cn/bbs] 
Z1010 785 404 1231 886 2026 3289 2603
无线论坛[http://www.j2me.com.cn/bbs] 
K700i 712 370 1085 639 1687 3049 1864
无线论坛[http://www.j2me.com.cn/bbs] 
T610 20580 11575 33585 28100 71365 87740 76280
无线论坛[http://www.j2me.com.cn/bbs] 
T610 (R3C) 8780 5055 14515 11385 30440 42120 34595
无线论坛[http://www.j2me.com.cn/bbs] 
T610 (R6C) 9875 5575 16210 12235 33295 49410 37920
无线论坛[http://www.j2me.com.cn/bbs] 
P900 250 109 344 156 406 2203 1062
无线论坛[http://www.j2me.com.cn/bbs] 
P800 500 282 813 625 1563 3250 1750
无线论坛[http://www.j2me.com.cn/bbs] 
Thank you to Dmitry Gorilowsky for measurements
无线论坛[http://www.j2me.com.cn/bbs] 
PDA
无线论坛[http://www.j2me.com.cn/bbs] 
/-\ Sony
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
Clie N610 48830 24960 84770 35810 102100 445530 206440
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
辅助工具:FloatConv (1.1)
无线论坛[http://www.j2me.com.cn/bbs] 
_Nikolay Klimchuk_ 还开发了一些相关工具让该Float的使用变得更加的简单。FloatConv是一个数学转换器,它将数学算数表达式转换为midp1.0平台上使用henson.midp.Float的等价表达式。这样使得使用henson.midp.Float的成本大大降低了。这一工具是基于J2SE 。
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
该工具的下载地址是:
http://www.unteh.com/download/FloatConv/FloatConvW.zip无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
对CLDC1.1的扩展
无线论坛[http://www.j2me.com.cn/bbs] 
henson.midp.Float11 是对CLDC1.1的扩展。提供了CLDC1.1相对比J2SE缺失的浮点操作:
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
Non-static members Static members Constants
无线论坛[http://www.j2me.com.cn/bbs] 
double asin(double x)
无线论坛[http://www.j2me.com.cn/bbs] 
double acos(double x)
无线论坛[http://www.j2me.com.cn/bbs] 
double atan(double x)
无线论坛[http://www.j2me.com.cn/bbs] 
double atan2(double y, double x)
无线论坛[http://www.j2me.com.cn/bbs] 
double exp(double x)
无线论坛[http://www.j2me.com.cn/bbs] 
double log(double x)
无线论坛[http://www.j2me.com.cn/bbs] 
double log10(double x)
无线论坛[http://www.j2me.com.cn/bbs] 
double pow(double x, double y) double SQRT3 - Square root from 3
无线论坛[http://www.j2me.com.cn/bbs] 
double LOG10 - Natural logarithm of 10
无线论坛[http://www.j2me.com.cn/bbs] 
double LOGdiv2 - Natural logarithm of 0.5
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
下载地址:
http://henson.newmail.ru/j2me/Float11.java无线论坛[http://www.j2me.com.cn/bbs] 
henson.midp.Float11的license和henson.midp.Float是一样的。
无线论坛[http://www.j2me.com.cn/bbs] 
无线论坛[http://www.j2me.com.cn/bbs] 
另外一套功能相似的基于CLDC1.0的LIB是Beartronics Java J2ME Libraries的fpmathlib,地址 :
http://sourceforge.net/projects/bearlib/,感兴趣的朋友可以自行研究。

抱歉!评论已关闭.