07_类型转换(自动与强制)

类型转换

一. 自动类型转换

两种类型相互兼容

目标类型大于源类型

//整数-整数
		
short s = 123;
int i = s;//将源类型值存入到目标类型变量中(自动类型转换)123

byte b = 100;
short s2 = b;//自动类型转换 100

//小数-小数
		
float f = 100.0F;
double d = f;//自动类型转换 100.0

//整数-小数
int i2 = 100;
double d2 = i2;//自动类型转换 100.0

//字符-整数
		
char c = 'A';
int i3 = c;//自动类型转换 65 

//字符-小数
		
char c2 = 'a';
double d3 = c2;//自动类型转换 97

//boolean无法与其他类型进行转换

二. 强制类型转换

两种类型相互兼容

目标类型小于源类型

//长度足够,数据完整
short s = 113;
byte b = (byte)s;//强制类型转换 113

//长度不够,数据截断		
short s2 = 257;
byte b2 = (byte)s2;//强制类型转换(数据截断)1

short s3 = 130;		
byte b3 = (byte)s3;//强制类型转换(数据截断)-126

//小数强转为整数
double d = 2.999;
int i = (int)d;//2

//整数强转为字符		
short s4 = 65;
char c = (char)s4;//A

//字符与整数转换的注意事项		
short s5 = -1;//-32768 ~-32767
char c2 = (char)s5;//char类型没有负数,所以负数转为字符会输出问号?

数据的最高位为符号位

符号位为0:代表正数

符号位为1:代表负数

posted @ 2021-02-01 14:00  MARSdoubleZ  阅读(81)  评论(0编辑  收藏  举报