1 自动转换
两大条件:
目的类型比原来的类型要大
两种类型是相互兼容的
类举:
byte -> short //1字节 -> 2字节
short -> int //2字节 -> 4字节
char -> int //2字节 -> 4字节
int -> long //4字节 -> 8字节
int -> double //4字节 -> 8字节 不带精度 -> 带精度
float -> double //4字节 -> 8字节 单精度 -> 双精度
....
计算中
两个数中有一个为double类型,另一个也被转换为double类型,结果为double类型
否则,两个数中有一个是float类型,另一个也被转换为float类型
否则,如果两个操作数中有一个long类型,另一个也被转换为long类型
否则,两个数都转换为int类型2 强制类型转换
浮点型转给整型:把小数位截掉,保留整数位
package dataType;
public class TestChange {
public static void main(String[] args) {
double adouble = 3.55555;
int aint = (int)adouble;
System.out.println(aint); // 3 整数部分
}
}
长的整型赋给短的整型:去位 //十进制转为二进制 从高位开始去位
int 4个字节 32位
byte 1个字节 8位 // 丢失24位,只赋8位
int 表示257(二进制)
257 00000000 00000000 00000001 00000001
赋值给 byte 时 只取后 8 位
00000001 = 1
package dataType;
public class TestChange {
public static void main(String[] args) {
int aint = 257;
byte abyte = (byte)aint;
System.out.println(abyte);
}
}