char类型数据的字面值的范围

char类型数据的字面值的范围

65535已经是char类型的最大值,为什么65536还可以用char进行强制数据类型转换

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小班 2019-06-12 10:43:58

同学你好,1、强制类型转换就是强制的把一个数据类型转换为另外一种数据类型。所以不止char类型可以强制转换,其他类型也可以强制转化哦!只是转化后有时会出现数据丢失的情况!无法准确表达原有数据! 例如:

 http://img1.sycdn.imooc.com//climg/5d006b5b0001a38006440296.jpg

2、65535是char类型的最大值,所以char类型会不接收65536的值,但是这里可以强制类型转换,转换时,会在底层中将不符合条件的数据舍弃,所以强制转换时会出现数据丢失的现象,从而出现一些无法正常显示的数据哦!

http://img1.sycdn.imooc.com/climg/5d0066b3000169d403390149.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~


  • 想问一下,为什么char可以(char)65537,但int不可以 (int) 2147483648呢

    2021-05-26 18:09:36
  • 同学你好,因为char在底层有自动转换规则,其范围超过0-65535的范围,如果强制转换(char c = (char)i;)java会根据规则自动转换到0-65535区间中的一个。

    而int的范围就是-2147483648到+-2147483648,它并没有自动转换规则,超出这个范围就不符合语法,直接报错。

    祝学习愉快!

    2021-05-27 10:28:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师