Java语言基础——数据类型转换

数据类型转换
——————正方向————————>
           char  ->  int -> long -> float ->double
byte -> short -> int -> long -> float -> double
<———————负方向————————

自动类型转换
正方向,小类型到大类型会自动完成。自动类型转换也叫"隐式类型转换",是自动发送的
规则是:符号位会自动扩增,负数补1,整数补0,保证补码数值不变。(整数到浮点转换会损失精度)

1 public class Demo {
2    public static void main(String[] args) {
3       char c = 'A';  //A对应的ASC编码为65
4       int i = c;   //自动类型转换
5       System.out.println(i); //输出65
6    }
7 }


强制类型转换
强制类型转换,也叫显示类型转换,是按照反方向进行的转换,这种转换会溢出,或者损失精度,要注意数据的范围。
例:

 1 public class Demo {
 2    public static void main(String[] args) {
 3       int i1 = 128+256;//00000000 00000000 00000001 10000000
 4       byte b = (byte)i1;//砍掉前24位,剩余的部分100000000
 5       System.out.println(b); //输出-128(所以需注意,强转要注意类型取之范围)
 6   
 7       int i2 = 65;
 8       char c = (char)i2;
 9       System.out.println(c);//输出A
10    }
11 }
原文地址:https://www.cnblogs.com/hqr9313/p/2439697.html