您的位置:首页 > 编程语言 > Java开发

浅谈java数据类型间的转换

2014-11-07 11:40 162 查看
如有什么错误的地方还望不吝赐教,共同进步,好了直奔正题吧。

数据类型转换是将一种数据类型的值转换成另一种数据类型的操作。

一、数值类型转换

当一个运算中,一个操作数是整数,另一数是浮点数,java会自动的将整数转换成浮点数,如1*1.3就会变成1.0*1.3 也就是说,java可以将一个数值赋值给支持更大数值范围类型的变量,例如可以将long型的值赋给float型变量。将一个小范围类型的变量转换成大范围的变量叫拓宽类型, 把大范围类型的变量转换成小范围的叫缩窄类型。拓宽类型不需要显示转换,可以自动转换。缩窄类型必须显示完成。

类型转换的语法是目标类型放在括号内,紧跟其后的是要转换的变量名。

例如:System.out.println((double)1/2);结果为0.5,因为1首先被转换成1.0 然后再去除以2

System.out.println(1.0/2); 结果为0.5

System.out.println(1/2); 结果为0,因为1和2都是整数,对他们做除法的结果也必须是整数

二、字符型char与数值型数据间的转换

char型数据可以转换成任意一种数值类型,反之亦然。

整数转换成char型,只用到该数据的低十六位。

如:char ch=(char)0x1b0041; //0x开头的是十六位进制数

System.out.println(ch); //低十六位就是0041,它是“A”的ASCII码,所以结果就是A

浮点数转换成char型时,首先将浮点值转换成int型,然后在转换成char型。

如:char ch=(char)65.69; //这里其实是将65分配到ch里

System.out.println(ch); // 打印结果为A(A的ASCII码十进制数就是65)

再如:int i=(int)'A';

System.out.println(i); //打印结果为65

如果转换结果适用于目标变量,就可以使用隐式转换方式,否则必须使用显示转换方式。

如:byte b='a'; int i='a'; //因为‘a’的统一码是97,它在一个字节范围内,所以可以用隐式转换方式

但\u1234超过一个字节范围内,需要强制赋值,所以要用显示转换方式

byte b=(byte)'\u1234';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: