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是一种很特殊的数字和字符类型.它规律跟其他
数字类型都不一致.