基本数据类型的转换
●java中可以从任意基本类型转型到另外的基本类型.
●例外:boolean类型不可以转换为其他的数据类型。
●转换分为默认转换和强制转换
●默认转换:整形,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:容量小的类型默认转换为容量大的数据类型;数据类型按容量大小排序为:
byte,short,char->int->long->float->double
byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型 强制转换
● 容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造
成精 度降低或溢出;使用时要格外注意。
● 有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的
那一 种数据类型,然后再进行计算。
● long类型与float类型的大小
● 在内存中占用的是4个字节的空间,而long型占用的是8个字节的空间。可是为
什么4个字节的float型的最大值会大于long型的最大值呢?
● long整型数,在内存中占用8个字节共64位,它表示的数值有2的64次方,平
分正负,数值范围是负2的63次方到正2的63次方-1。
● 而float在内存中占4个字节,共32位,但是浮点数在内存中是这样的:
浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。
● 其中第1位,符号位,即S。
● 接下来的8位,指数域,即E。
● 剩下的23位,小数域,即M。
● 也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是
按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却
比长整型的最大值要大。