一:java的数据类型转换除布尔类型boolean(不能转换)有两种:<一> 自动转换; <二> 强制转换
<一>、自动转换:就是将小的数据类型自动转换成大的数据类型。如:int与byte计算时,byte(-128~127)自动的转换成int(-2147483648~2147483647)的类型。
0.1、基本数据类型自动转换:
byte->short,char -> int -> long
float -> double
int -> float
long -> double
记住:小可转大,大转小会失去精度!!!
<1> byte的转换:
byte a=120;
byte b=a+80; //提示:从int类型(指:80)转换成byte的类型可能会损失精度
System.out.println(b);
<2> char 字符转换
char id=‘a‘; a=97
int i=id+3;
System.out.println(i); //100
<3>记住int: int 一旦达到最大值,它不会提升其类型,而是直接损失精度。
int id=2147483647;
int g=id+1;
System.out.println(g); //-2147483648
为什么会是负的-2147483648的呢?
原因是:2147483647的二进制是:0111 1111 1111 1111 1111 1111 1111 1111
如果+1之后它的二进制是:1000 0000 0000 0000 0000 0000 0000 0000 转换成十进制之后:-2147483648