本帖最后由 ku8h96de4 于 2013-05-13 22:05:09 编辑

解决方案 »

  1.   

    在ASCII码里'C'的值是67,把c值赋给d是,d的值就是67了
      

  2.   

    这个是和ASCII码表是相对于的a对应于十进制的97,后面类推
      

  3.   

    暗含一个类型转换的,例如:
    char d = 67;
    System.out.println(d);
    输出C
      

  4.   

    char 类型对应ASKII 码表  值为0-255  楼主如果用不在这个范围的数 再去测试的话 就不会出现这样的情况了
      

  5.   

    char属于数字是对应字符的ASCII值,所以输出char时,会使出相应的字符
      

  6.   


    public static void main(String... args){
            char c1 = 105;
            int i1 = 105;
            char c2 = 'i';
            int i2 = 'i';
            
            System.out.println(c1);
            System.out.println(i1);
            System.out.println(c2);
            System.out.println(i2);
        }他们的数据是相同的,只是类型不同,另外纠正下上面一些说法,ascii只是0-127前128个字符,而char类型是16bits的unicode字符,包括的范围完全不一样,为什么输出会不一样是因为println对不同的类型的处理不同,背后其实是调用不同的String.valueOf()的重载
    当是int类型时,他做public static String valueOf(int i) {
            return Integer.toString(i);
    }当是char类型时,他做public static String valueOf(char c) {
            char data[] = {c};
            return new String(data, true);
    }
      

  7.   

    补充下,上面说的都是在不越界的情况下,因为char是16bits而int是32bits,使用不当会出现越界的