基本数据类型的转换

基本数据类型的转换

byte与byte(或short,char)进行运算的时候会先各自转换成int,之后再进行运算,两个int类型相加的结果也是int类型。

看下面代码是否有问题:

  byte b1 = 3;
  byte b2 = 4;
  byte b3 = b1 + b2;

第三行代码有问题,编译错误。因为b1和b2在做运算的时候会先转成int类型,所以b1 + b2的结果是int类型,int类型是不能直接赋值给byte类型的(大容量转小容量),这里需要进行强制类型转换。第三行修改为如下代码即可:

byte b3 = (byte)(b1 + b2);

看下面程序打印的结果是多少?

 byte b1 = 10;
  short s1 = 20;
  int i1 = b1 + s1;
  System.out.println(i1);

打印结果是30,b1和s1在做加法运算时会先各自转换成int类型,所以b1和s1可以进行加法运算。

看下面的程序打印结果是多少?

 char l = 'a';
  System.out.println((byte)l);
  int m = l + 100;
System.out.println(m);

第一个输出结果为97,也就是a的ascii值。
第二个输出结果为197,取得a的ascii码值,然后与100进行相加运算

关于基本数据类型转换规则:

1.8种基本数据类型除boolean类型之外都可以相互转换.

2.小容量向大容量转换叫做自动类型转换:
byte

3.byte,short,char做混合运算的时候,各自都先转换成int在做运算

4.大容量向小容量转换是强制类型转换,需要加强制转换符,
编译虽然通过,运行期可能损失精度。谨慎使用。

5.如果整数没有超出byte,short,char的取值范围,可以直接将这个整数赋值给byte,short,char

6.多种数据类型做混合运算,先转换成容量最大的那种再做运算。

你可能感兴趣的:(基本数据类型的转换)