数据类型转换问题

数据类型转换问题

为什么System.out.println(3 + '\t' + 5 + '\n' );的输出结果是数字27,而不是ASCII码27对应的字符?

正在回答

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

2回答

同学你好,这是java中的向上兼容,不同数据类型的数据参与运算,数据类型要强制转换,转换方式是自动转换成较大的数据类型。

int类型是32位的数据类型,char类型是16位的数据类型,int是比char大的类型,所以输出时会自动将char类型转成int 类型输出,想要输出小类型就需要强制转换。

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

  • Cyan_Tiare 提问者 #1
    谢谢老师,我明白了~
    2020-04-18 18:48:53
好帮手慕小琪 2020-04-18 18:04:15

同学你好,想要输出对应的字符,就要将数值转化成对应的char类型字符,输出后就是对应的ASCII码了。

27对应的ASCII码值在编译工具中无法显示正常的格式,输出后是乱码,我们常用的字符是可以输出的。

如下图(不必深究显示与否,乱码输出也是可以看到占了字节的):


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

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

  • 提问者 Cyan_Tiare #1
    谢谢回答,学习了。不过我是想问,为什么int + char,输出的是int,而不是char?为什么是char被转换成int,而不是int被转换成char?
    2020-04-18 18:06:45
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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