基本数据类型变量间的自动提升与强制转换
测试基本数据类型的运算规则 这里基本类型不包括布尔
运算规则
自动类型提升
当容量小的变量与容量大的变量做运算时,结果自动转换容量大的数据类型
说明:此时容量大小,指的是数据范围大小,而不是占内存空间的大小
按道理应该是这样的
byte ---->short ---->int ---> long ---> float ----> double
实际上byte 和short 还有char之间 做运算实际上是int类型
byte1=byte+1; 错误的,整型常量被规定int型
浮点型常量,被规定为double型
强制类型转换 将容量大的强制转化为容量小的类型 强制类型转换需要使用强转符,()内指明要转换的类型 强制类型转换过程中,可能导致精度损失
byte b=3;
b=b+4;//编译不通过
加上b=(byte)(b+4); 成功
short s=5;
s=s-2;//编译不通过
强制转换实例
str6编译成功,因为第一个就是String型str4加布尔型
str7编译不通过,b1是布尔型,无法和int型num相加
测试一下:
进制
0b开头是二进制,0开头是8进制,0x开头是十六进制
计算机数据的存储以二进制的补码进行存储的