A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cehkongfu 中级黑马   /  2012-10-8 12:32  /  1879 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Test
{
        public static void main(String args[])
        {
                int n=11;
                System.out.println(n-10+' ');
                System.out.println(n-10+'A');
        }
输出结果为什么分别是33,66

6 个回复

倒序浏览
这个你看一下ascii码表就知道了,单引号内空格的值是32.所以第一个输出是33,第二个A的值是65,所以会输出66.
回复 使用道具 举报
System.out.println('A') 输出的结果是65
System.out.println(n-10+'A');  括号里面其实就是n-10+65   
这其实就是ASCII 值的问题   当出现 n-10+'A' 时 'A'就自动换成 其ASCII 值进行计算了
而' ' 的ASCII 值就是32  
回复 使用道具 举报
运算时有个 类型提升过程 n-10 为int型 ' '为char型
所有提升为int型 而 ' '的ASCII 值为32 'A'的ASCII 值为65
因此得出此结果
回复 使用道具 举报
这个就是类型转换问题了,不同类型在一起运算 byte short char转成int,具体数值就是按ASC码表了。。
回复 使用道具 举报
ascii码
' '的值是32
'A'的值是65,
所以输出结果分别是33,66
回复 使用道具 举报
看看..........顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马