数据类型转换问题

来源:3-21 编程练习

Cyan_Tiare

2020-04-18 16:46:36

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

写回答

2回答

好帮手慕小琪

2020-04-18

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

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

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

1
hyan_Tiare
h 谢谢老师,我明白了~
h020-04-18
共1条回复

好帮手慕小琪

2020-04-18

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

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

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


http://img.mukewang.com/climg/5e9ad09b09f915b611070362.jpg

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

1
hyan_Tiare
h 谢谢回答,学习了。不过我是想问,为什么int + char,输出的是int,而不是char?为什么是char被转换成int,而不是int被转换成char?
h020-04-18
共1条回复

0 学习 · 11489 问题

查看课程