基本数据类型转换

来源:互联网 发布:ubuntu 远程 中文乱码 编辑:程序博客网 时间:2024/06/05 08:07

0、基本数据类型:4类、8种

1、布尔类型不与其他基本类型转换

2、整形、字符型、浮点型在混合运算的时候遵循以下原则:

容量小的数据类型自动转换为容量大的数据类型,容量从小到大排序:

byte、short、char->int->long->float->double

3、byte、short、char之间不转换,3者在运算的时候会先转换成int

4、有多种数据类型混合运算的时候,系统首先自动将所有的数据类型转换成容量最大的数据类型,再计算

5、实数常量:如1.1默认是double

6、整形常量:如1默认是int

7、高容量的向低容量的转化需要加强制类型转换

例子:

byte a=1; //这样是可以的,只要这里的int数值不超过byte的表示范围(此句可以认为是第8条),byte的表示范围 

byte b=2;  // -127~127

byte c=a+b; //这样就是错的了,因为两个byte类型在运算之前会先转换为int,也就是说a+b的结果是int的,这里就需

                    //要强制类型转换

byte a=89;

byte b=67;

byte c=(byte)a+b;

System.out.print(c);//这样是可以的,会把多余的3个字节直接去掉,取余下的部分。

double d=1e1000;

float f=(float)d; //会产生溢出,float类型在内存中要能表示出小数点,从double向float转换直接去掉高位字节是表示不出小数部分的,因此会是一个Infinity无限大的数。(这可作为第9条)

相反,从float向double转换的时候,直接去掉小数部分就可以了。



原创粉丝点击