Java数据类型的转换

2025-06-28 04:58:16

Java是一种强类型语言,针对每种数据都提供了对应的数据类型,每种类型所占的字节数也不同,因此,所能表示的范围也有所不同,从而就会涉及到数据类型转换。

默认转换

1、 byte,short,char -- int -- long -- float -- double

2、byte,short,char之间不互相转换直接转换成int类型不参与运算

3、long(8个字节)为什么可以自动向float(4个字节)转换?

Java数据类型的转换

4、long整型数,在内存中占用8个字节共64位,它表示的数值有2的64次方,平分正负,数值范围是负2的63次方到正2的63次方-1。  而float在内存中占4个字节,共32位,但是浮点数在内存中是这样的:  V=(-1)^s * M * 2^E   667x190  浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。  其中第1位,符号位,即S。  接下来的8位,指数域,即E。  剩下的23位,小数域,即M,M的取值范围为[1,2)或[0,1)。  也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却比长整型的最大值要大。  这也就是为什么在数据转换的时候,long类型转换为float类型的根本原因所在!

强制转换

1、 格式:目标数据类型 变量名 = (目标数据类型) (被转换的数据)

2、 注意:可能有精度的损失

Java数据类型的转换

3、思考和面试题1: byte b1 = 127; byte b2 = (byte)128; //-128 byte b3 = (byte)129; //-127 byte b = (byte)130; // -126

Java数据类型的转换

4、思考和面试题2: 下面的程序有问题吗,如果有,在哪里呢? byte b1 = 3; byte b2 = 4; byte b3 = b1 + b2;//报错 byte b4 = 3 + 4;//7

Java数据类型的转换
Java数据类型的转换
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢