在Java编程时会遇到数据类型转化的问题,对于初学者来说非常容易弄混淆,只需记住一句话范围小的数据类型可以转化为数据范围大的数据类型。
常见的数据类型int char float double short long等,他们的转化格式为byte->short->int->long->float->double 其中char类型可以转化为int类型,其输出结果为字符的ASCII码值
类型转化大致分为两种 1、自动转化 2、强制转化
例如代码:byte aa=20;
int bb=aa;
System.out.println(bb);
由于byte类型的范围小于int型数据,所以小范围可自动转化成大范围输出结果20;
例如代码:char ch='c';
int code=ch;
System.out.println(code);
由于char表示的是字符型数据且范围为2字节小于int型4字节,可以自动转化,输出结果为c的ASCII码值97
对于强制转换,主要用于那些不能自动转化的数据,例如int类型不能自动转化成byte类型,这时就要考虑强制转化,但是要考虑到数据溢出的问题。
例如代码:int dd=20'
byte ff=(byte) dd;
System.out.println(ff);
int型数据为4字节32位所以20所表示的二进制数00000000 00000000 00000000 00010100
byte型数据为1字节8位,由于dd的有效位只有8位所以强制转化之后没有造成溢出,其输出结果为20。
例如代码:int gg=1500;
byte ll=(byte) gg;
System.out.printfln(ll);
1500所表示的二进制数为00000000 00000000 00000101 11011100如果强制转化成byte类型数据会造出数据溢出问题,程序会报错,总之数据类型转化很简单,但也是每个程序员必须知道的知识。
知识有限,不吝赐教。