package day02;
/*
*
* 重點
* 類型轉換
* 自動(隐式)类型转换
* 把一个小范围数据类型的值赋值给一个大范围的值(从小到大)
* 例: long b=100;long>int
* 强制(显式)类型转换
* 把一个大范围数据类型的值赋值给一个小范围的值(从小到大)
* 格式:数据类型 变量名=(数据类型)目标值
* byte b=3+4
* int b=(int) 100L;
*
* 注意事项:
* 1.byte,short,char可以参加运算
* 2.byte,short,char參與運算時首先轉換為int,然後運算
* 3.boolean不參與任何類型轉換.
*
*
*/
public class testbyte {
public static void main(String[] args) {
int a = 10;// 没发生轉換
// long <=int
long b = 100;// 自动转换为int
// float<=long
float f = 1000L;
// double<=float
double d = 12.5F;
// 强制类型转换:手动操作
int i = (int) 1000L;
// 当把一个大范围的数赋值一个小范围的变量的时候可能会数据溢出
// 即数据不精确
int i2 = (int) 60000000000000L;
byte b1 = 3;
byte b2 = 4;
// byte b3=b1+b2; byte+byte=>int +int=>int
int c = b1 + b2;//正确
byte b3 = 3 + 4;// 编译器对常量进行了强制类型转换,若int运算结果不超过byte类型范围,直接赋值
// byte b4=120+8;超过了byte范围.报错
byte b4 = 10;
// b4=b4+1;错误,byte=int+byte => int+int => int;
//byte c = -200; // ② byte范围; -128,127
//c = c + (a + b); // ③ byte类型数相加是int类型不能赋值给byte类型的变量
//System.out.println(a, b, c); // ④ syso只能输出一个数据,不能一次输出多个数据
char e = 'a';
int c1 = e + 1;
System.out.println(c1);// 98
// ASCII表: 就是数字和字符的对应关系表,在计算机中存储的字符本质都是整数
// '0' -> 48
// 'A' -> 65
// 'a' -> 97
}
}
FYV_Y%DO)U0EE6@]Z9CY22J.png (365.17 KB, 下载次数: 35)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |