char a = '5';
byte b = (byte)a;
System.out.println(b);为什么会输出53?

解决方案 »

  1.   

    ascii码
      

  2.   

    这个53在表里代表什么,不是已经强制转换成byte了,现在这个53也是byte类型吧?
      

  3.   

    byte 不是8位2进制吗 他把这个二进制转化成了10进制 还有这个53确实是byte类型
      

  4.   

    这里的 a 和 b 十进制都是 53 。只不过一个是 char 一个是 byte 而已。
      

  5.   

    计算机底层都是二进制(内存存储都是01数据),但顶层的表现并非二进制,也就是打印都是以默认形式打印的
    byte默认形式也是以10进制打印,
    如果想看二进制,System.out.println(Integer.toBinaryString((int)b));
    想看十六进制 System.out.printf("%x", b)
    想看八进制 System.out.printf("%o", b);
    等等
      

  6.   

    字符由2个字节组成,字符5如何用字节表示呢?可查ascii表字符5为53,即二进制0000 0000 0011 0101,转换为byte即为53