public class Multicast {    public static void main(String[] args) {        System.out.println((int) (char) (byte) -1);    }}

解决方案 »

  1.   

    -1 在数字类型中保存为补码形势,所以当char后的字符就是1111111111111111 再转换成int就是 65535
      

  2.   

    答:(byte)-1是11111111
         (char)(byte)-1是从8位符号位扩展成十六位:1111111111111111
         (int)(char)(byte)-1从char到int时,永远符号位按0扩展,即:00000000000000001111111111111111
    故:结果是65535
    楼主的主要意思是想考查:char->int的是如何扩展的。
      

  3.   

    正解给你1.(byte)-1 为 -1,因为-1没有超出byte的取值范围,-128~+127
    2.(char)(byte)-1 刚好是char的边界上,char 取值为\u0000~\uFFFF 所以 char转换后其值为\uFFFF 表示16进制值
    3.然后转化为int时 (int)(char)(byte)-1 就是把\uFFFF转化为十进制
    结果就是
       15*(16*16*16)+15*(16*16)+15*(16)+15*(16的0次方) 结果为:65535