数据类型转换规则
1.byte short char > int > long > float > double
2.byte short char之间不能互相转换
强制类型转换
byte a = 1;
int b = 2;
byte c = (byte)(a + b);
System.out.println(c);
强制类型转换造成精度丢失
byte a = (byte)129;
System.out.println(a); // -127
129
在计算中的表示为0 1000 0001
强制转换为byte
数据类型 1000 0001(补码)
补码:1000 0001
反码:1111 1110
原码:1111 1111(表示-127)
以下代码不会报错
byte a;
a = 1 + 2;
System.out.println(a);
分析:1
和 2
是常量,只要运算结果不超过byte
类型所能存储的最大范围,编译可以通过
以下代码会报错
byte a, b, c;
a = 1;
b = 2;
c = a + b;
System.out.println(c);
分析:byte
类型参与运算,首先会转换为int
类型,int
类型赋值给byte
类型会造成精度丢失,编译不通过