Flex数字类型和Java数字类型的比较

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuqixiansheng/article/details/47172251

1.Flex中有3种数字类型:int ,uint,Number


2.java中不严格的说有7种数据类型:char,byte,short

,int,long,float,double.其中char 类型主要赋值一个字符.

它们都可以赋值2,8,10和16进制的数.

3.Flex数字类型和java数字类型的比较.

1>Flex 中的int 与java中的int的取值范围完全一致

都是[-2147483648 ,2147483647]

2>Flex中的Number与java中的Double的取值几乎范围一致.

trace(Number.MAX_VALUE);//1.79769313486231e+308
trace(Number.MIN_VALUE);//4.9406564584124654e-324

...out.println(Double.MAX_VALUE);//1.7976931348623157E308
...out.println(Double.MIN_VALUE);//4.9E-324


3>flex uint的最大值是大概是int最大值的两倍,最小值是0


4>flex范围最大的数字是Number,java中最大的是Double.

范围是:[-max,max]  max IEEE-754标准

5>Number.MIN_VALUE和Double.MIN_VALUE.并不是最小的数字.而是最小的非负小数.范围:(0,1),最小的是它们最大值的相反数.


4.Flex中数字类型的最值超过界限的行为和java的几乎不一致.

trace(Number.MAX_VALUE+1 == Number.MAX_VALUE);//true
trace(-Number.MAX_VALUE == -Number.MAX_VALUE-1);//true


..println(Double.MAX_VALUE+1 == Double.MAX_VALUE);//true
..println(-Double.MAX_VALUE == -Double.MAX_VALUE-1);//true

这说明计算机中极限数字不能突破自身极限.当试图突破自身极限的时候计算的值还是其本身.


5.非极限数字(除了Number,Double),flex和java的不一致

java的规律:

MIN_VALUE-1 = MAX_VALUE

MAX_VALUE+1 = MIN_VALUE

对于int,long,float有效;注意+-1是没问题的,超过1就不相等了.

flex的规律:

MAX_VALUE+1 == MAX_VALUE-1的具体值

MIN_VALUE-1 == MIN_VALUE -1 的具体值

对于uint和int有效,类似的规律在java中对byte,short有效

在java中char是一种很特殊的数字和字符类型.它规律跟其他

数字类型都不一致.




展开阅读全文

没有更多推荐了,返回首页