基本数据类型转换
强制类型转换
package BasicGrammar;
/*
基本数据类型之间的运算规则:
前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的。
1. 自动类型提升:
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、char 、short --> int --> long --> float --> double
特别的:当byte、char、short三种类型的变量做运算时,结果为int型
2. 强制类型转换:自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。
说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量
*/
public class VariableTest2 {
public static void main(String[] args) {
//自动类型提升:
byte b1 = 2;
int i1 = 129;
//编译不通过(超出范围)
//byte b2 = b1 + i1;
int i2 = b1 + i1;
long l1 = b1 + i1;
System.out.println(i2);
float f = b1 + i1;
System.out.println(f);
short s1 = 123;
double d1 = s1;
System.out.println(d1);//123.0
System.out.println("=================================================================");
//***************特别地*********************
char c1 = 'a';//97
int i3 = 10;
int i4 = c1 + i3;
System.out.println(i4);
short s2 = 10;
//char c2 = c1 + s2;//编译不通过
byte b2 = 10;
//char c3 = c1 + b2;//编译不通过
//short s3 = b2 + s2;//编译不通过
//short s4 = b1 + b2;//编译不通过
//****************************************
System.out.println("=================================================================");
//强制类型转换:
double f1 = 12.9;
//精度损失举例1
int e1 = (int)f1;//截断操作
System.out.println(e1);//12
//没有精度损失
long l2 = 123;
short s3 = (short)l2;
//精度损失举例2
int i5 = 128;
byte b = (byte)i5;
System.out.println(b);//-128
//1.编码情况1:
long l = 123213;
System.out.println(l);
//编译失败:过大的整数
//long l11 = 21332423235234123;
long l11 = 21332423235234123L;
System.out.println("=================================================================");
//变量运算规则的两个特殊情况
//****************
//编译失败
//float f1 = 12.3;
float f11 = (float)12.3;
//2.编码情况2:
//整型常量,默认类型为int型
//浮点型常量,默认类型为double型
byte b11 = 12;
//byte b11 = b + 1;//编译失败
//float f11 = b + 12.3;//编译失败
System.out.println("=================================================================");
}
}
标签:类型转换,short,Java,int,System,语法,println,byte,out
From: https://www.cnblogs.com/ljgjava/p/16727078.html