04-基本数据类型之间的运算规则

1.自动类型提升

前提:这里讨论的是七种基本数据类型间的运算,不包含Boolean。

我们看下面这一段代码考虑一下写的是否正确?

1 byte b1 = 12;
2 int i1 = 1123;
3 byte b2 = b1 + i1;

如果我们运行上面代码就能发现代码语法错误,byte是一个1小的数据类型而int是一个大的数据类型,二者之和应该其中比较大的那个数据类型来承接。

1 byte b1 = 12;
2 int i1 = 1123;
3 int b2 = b1 + i1;

上面代码运行就不会报错。

注意:byte  short  char属于同一级别,当他们三者之间进行运算或者自身运算的时候,使用int来接收计算结果。

byte short char-->int-->long-->float-->double

结论:当容量少的数据类型的变量与容量大的数据类型做运算时,结果自动提升为容量大的数据类型。(此时的容量大小指的是表示数的范围的大小。)

2.强制类型转换

强制类型转换:自动类型提升的逆运算

需要使用强制转换符(),可能会导致精度损失。

格式:

小的数据类型 变量名1 = (小的数据类型) 变量名2;  // 其中变量2刚开始储存的时候使用的数据类型比较大