(二十三)不同数据类型的转换有哪些规则

一、隐式转换:从低精度到高精度

byte<short<char<int<long<float<double 

注意:

①char类型的数据转换成高级类型(int、long),会转换为其对应的ASCII码

②byte、char、short类型的数据在参与运算或自动转换成int,但是“+=”运算时,就不会产生类型的转换

char c='a';
		int i=c;
		System.out.println(i);//97转换成对应的ASCII码
		
		byte b=1;
		short s=2;
		System.out.println(b+s+c); //1+2+97

二、强制类型转换

char c='a';
		int i=(int)c;
		System.out.println(i);

注意:

①在强制类型转换时可能会丢失精度(比如小数转换成整型,小数点后没了,即丢失精度)

②注意int到Boolean不会隐身转换,

       int j=1;
		if(j) //报错:Type mismatch: cannot convert from int to boolean
        {
			System.out.println(j);
		}
		

short a=128;//0000000010000000
		byte b=(byte)a;
		System.out.println(b);

byte:1个字节,因为java数据类型是有符号的数据类型,所以-128~127。

截取后8位,最高位是符号位

负数的值计算方法

10000000:-128

10000001:-128+1=-127

 

posted @ 2019-02-16 21:06  测试开发分享站  阅读(261)  评论(0编辑  收藏  举报