本节主要介绍基本数据类型之间的转化
基本数据类型之间的转换常用强制类型转换
先看一下常用的数据类型:(注:1位=1比特;1字节=8位)
类型名 | 存储空间 |
byte | 1字节 |
short | 2字节 |
int | 4字节 |
long | 8字节 |
float | 4字节 |
double | 8字节 |
下面提供两种关于基本数据类型转换的方法:
1.默认类型转换(隐式转换)
当存储空间小的类型赋值给大的类型时,会自动转换为大的类型
int a = Integer.MAX_VALUE;
long b = 2;
b = b + a;
如上所示的代码是正确的,a会被当作long类型进行运算
同理:int可以被当作double等
2.强制类型转换(显式转换)
在不确定是否可以进行默认类型转换时,使用强制类型转换是个好方法
double转int(损失小数后的精度)
double a = 3.14;
System.out.print((int)a);
输出3;
我们可以利用这一点来构造随机整数
System.out.print(1+(int)(Math.random()*50));
这行代码将输出一个1-50随机的整数
int转double
int a = 3;
System.out.print((double)a);
输出3.0;
int转long
int a = 3;
System.out.print((long)a);
输出3;
long转int(可能导致内存溢出)
long a = 3;
System.out.print((int)a);
输出3;
char转int
char a = 'a';
System.out.print((int)a);
输出97;
由此得出,char转int,会变成该字符的ASCII码
char a = '1';
int b = a - 48;
System.out.print(b);
我们可以像这样把char数字,转为int数字
int转char
int a = 99;
System.out.print((char)a);
输出c;