请写出下面代码的多次类型转化后的结果 public class Multicast { public static void main(String[] args) { System.out.println((int) (char) (byte) -1); }} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 -1 在数字类型中保存为补码形势,所以当char后的字符就是1111111111111111 再转换成int就是 65535 答:(byte)-1是11111111 (char)(byte)-1是从8位符号位扩展成十六位:1111111111111111 (int)(char)(byte)-1从char到int时,永远符号位按0扩展,即:00000000000000001111111111111111故:结果是65535楼主的主要意思是想考查:char->int的是如何扩展的。 正解给你1.(byte)-1 为 -1,因为-1没有超出byte的取值范围,-128~+1272.(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 安装netbeans-6.5.1-ml-javase-windows.exe 出现以下错误观 反思瑟夫环问题 一小段代码的疑问(多谢) 如何让自己画的矩形相应鼠标点击事件? 如何实现两个程序同时监听一个端口? j2se调用打印机相关链接代码 小弟刚学java写了个Helloworld,编译出来.class文件有191K,网上的APP程序只有几K,怎么回事? 在applet里怎么调javascript 实现最大化 文件读取问题或集合读取元素问题 为什么JTextArea的滚动条从JTextFeile 里面接受会自动滚动,而从另一个客户端接受进来的却不能自动滚动? 问个读文本文件的问题
(char)(byte)-1是从8位符号位扩展成十六位:1111111111111111
(int)(char)(byte)-1从char到int时,永远符号位按0扩展,即:00000000000000001111111111111111
故:结果是65535
楼主的主要意思是想考查:char->int的是如何扩展的。
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