自动类型转换(也称为隐式类型转换)

1.是什么

        自动类型转换(也称为隐式类型转换)是指当一个较小数据类型的变量被赋值给一个较大数据类型的变量时,编译器会自动将较小数据类型的值转换为较大数据类型的值。这种转换是安全的,因为较大数据类型的表示范围包含了较小数据类型的表示范围。这种转换通常是安全的,并且不会导致数据丢失或精度降低(尽管在某些情况下可能会发生精度损失)。

那么大家都知道自动类型转换的排序吧!以下是从低到高的顺序:

①整数类型的排序

②字符类型的排序

注意细节!!!

1.有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。

解释:

(1)所有byteshortchar类型的值首先被提升为int类型。

(2)如果表达式中的操作数有long类型,那么所有int类型的值也会被提升为long类型。

(3)如果表达式中的操作数有float类型,那么所有long类型的值会被提升为float类型。

(4)如果表达式中的操作数有double类型,那么所有floatlongintshortbytechar类型的值都会被提升为double类型。

2.(byte, short) 和char之间不会相互自动转换

解释:例子 :char 到 byte 或 short

3.自动提升原则:表达式结果的类型自动提升为 操作数中最大的类型

解释:例子 :整型之间的自动提升

4. byte,short,char 他们三者可以计算,在计算时首先转换为int类型。

5.char类型在转换为int时,其对应的Unicode码值会被使用。

2.为什么

        自动类型转换的原理基于数据类型的兼容性和范围。当两种数据类型之间存在一种自然的“升级”关系时,即一种数据类型能够完全包含另一种数据类型的所有可能值时,就可以发生自动类型转换。这里我从范围这个角度来解释。

        自动类型转换还涉及到数据类型的范围。当一个数据类型的值被赋值给另一个范围更大的数据类型时,这个值可以安全地存储在目标类型中,而不会发生溢出或截断。例如,int类型的值(在大多数平台上为32位)可以安全地转换为long类型(在大多数平台上为64位),因为long类型能够表示所有int类型的值以及更多的值。

 举个例子吧!

当byte类型转为short类型时,假设一个字节大小相当于一个格子,那么将一个格子放在两个格子大小的空间里是可以放得下的,但是反过来就不行了,把有两个格子空间的物品放进只能容纳一个格子的空间就会溢出,相当于精度损失!!!

 

 

 当然,在这里有些小伙伴觉得有问题,为什么老师在上课的时候就能将short类型转换为byte类型呢???不过没关系,下期我将给大家讲讲另一种类型转换——强制类型转换。

        好辣,这期就结束啦,感兴趣的朋友可以关注一下,更多干货将会陆续更新哦!!!

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值