java基本数据类型转换_Java基本数据类型及数据类型转换

1、Java中基本数据类型包括:整型(byte、short、int、long)、字符型(char)、布尔型(boolean)、浮点型(float、double)三种类型。

2、所占内存分别为:byte:1Byte;short:2Byte;int:4Byte;long:8Byte;char:2Byte;boolean:1Byte;float:4Byte;double:8Byte;

3、表示数的范围byte:[-128~127];short:[-32768~32767];int:[-2147483648~2147483647];long:[-9223372036854774808~9223372036854774807];

float:[3.402823e+38 ~ 1.401298e-45];double:[1.797693e+308~ 4.9000000e-324];

表示范围的计算:

例如byte类型:

00000_0000~0111_1111:表示0~127;

10000_0000~1111_1111:表示-128~-1;

10000_0000 为-0;规定-0 = -128;

4、在Java中所有的整型数据默认都为int类型,浮点型默认为double;其它类型byte、short会隐式转换(若不超出表示范围);eg.:

1 byte b = 10; //隐式转换

2 short s = 10; //隐式转换

3 int i = 10;4 long l = 10L; //需要L或l注明

5 float f = 10F; //需要F或f注明

6 double d = 10;

5、扩展转换,扩展转换不必要进行显示的类型转换,因为目标类型足够容纳当前类型不会丢失信息。

b873d023d3ebd436a9787a0eb4d897a9.png

eg.:

byte b = 10; //隐式转换

short s = 10; //隐式转换

int i = 10;long l = 10L; //需要L或l注明

float f = 10F; //需要F或f注明

double d = 10;//扩展转换

short bUp =b;int sUp =s;long iUp =i;float lUp =l;double dUp =f;char ch = '1';int chUp = ch-48;

6、强制类型转换,将容纳更多信息的数据类型转换成一个容量更小的数据类型,可能存在精度损失的风险,编译器要求程序员进行强制类型转换;

eg.

int age = 10;short ageDown = (short)age;//强制类型转换不会丢失信息

System.out.println(ageDown);int width = 130;byte widthDown = (byte)width;//强制类型转换会丢失信息

System.out.println(widthDown);

输出:

10

-126

float average = 10.5f;int averageDown = (int)average;

System.out.println(averageDown);

输出:

10

由于with = 130超出byte数据类型的表示范围,所以编译器会进行高位截断:

130 原码:0000_0000_0000_0000_0000_0000_1000_0010 ;

补码:0000_0000_0000_0000_0000_0000_1000_0010 ;

将130的补码截取低八位:1000_0010 ;

1000_0010 ;为补码形式最高位为符号位,可见结果是一个负数,减一取反求得原码为:1111_1110;

所以输出为-126。

而浮点数直接截断小数部分。

通常表达式中的最大的数据类型结果决定了该表达式的数据类型。

7、练习题:

一、二会通过编译?

/*** 一:*/

short s1 = 1;

s1= s1 + 1;

/*** 二:*/

short s1 = 1;

s1+= 1;

答案:二

因为在Java中所有整型数据默认都为int型 s1 = s1 + 1; 1为int型需要强制装换;而 s1 += 1; 编译器会进行隐式的类型转换。

写的第一篇文章写得好方/(ㄒoㄒ)/~~。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值