public class Multicast {    public static void main(String[] args) {        System.out.println((int) (char) (byte) -1);    }}这个程序,-1转为byte还是-1,但是byte转为char会是多少呢?请高手指点

解决方案 »

  1.   

    -1 -> byte -> char,是\u00ff
      

  2.   

    因为进行(char)转型的时候,(byte)-1仍然会被视作(int)-1这个就好像byte b = (byte) 1; b = (byte) b + 1;而不是 b = b + 1一样道理int型的-1,二进制是32个1,char取其中16个(0xffff)也就是'\uffff'再转回int型,前面补足16个0,变成0x0000ffff也就是65535
      

  3.   

    即使是16位的int,也不会是\u00ff的说