黑马程序员技术交流社区

标题: 数值输出 不解 [打印本页]

作者: cehkongfu    时间: 2012-10-8 12:32
标题: 数值输出 不解
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
作者: y510662669    时间: 2012-10-8 12:42
这个你看一下ascii码表就知道了,单引号内空格的值是32.所以第一个输出是33,第二个A的值是65,所以会输出66.
作者: 曾浩    时间: 2012-10-8 12:43
System.out.println('A') 输出的结果是65
System.out.println(n-10+'A');  括号里面其实就是n-10+65   
这其实就是ASCII 值的问题   当出现 n-10+'A' 时 'A'就自动换成 其ASCII 值进行计算了
而' ' 的ASCII 值就是32  

作者: 葬天    时间: 2012-10-8 12:52
运算时有个 类型提升过程 n-10 为int型 ' '为char型
所有提升为int型 而 ' '的ASCII 值为32 'A'的ASCII 值为65
因此得出此结果
作者: 李兆宁    时间: 2012-10-8 13:04
这个就是类型转换问题了,不同类型在一起运算 byte short char转成int,具体数值就是按ASC码表了。。
作者: 陈俊来    时间: 2012-10-8 16:15
ascii码
' '的值是32
'A'的值是65,
所以输出结果分别是33,66

作者: 徐传任    时间: 2012-10-9 00:16
看看..........顶




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2