黑马程序员技术交流社区
标题:
有关数值多重转型的问题!
[打印本页]
作者:
孔斌
时间:
2013-1-28 12:34
标题:
有关数值多重转型的问题!
public class Test1 {
/**
* 有关多重转型的问题
*/
public static void main(String args[]){
System.out.println((int)(char)(byte)-1);//65535
}
}
复制代码
第一次转型是32位转为8位,第二次是扩展到16位,最后又回来到32位,而打印结果是65535,这是为什么呢?难道是组成原理里面的数值部分?
作者:
打工人
时间:
2013-1-28 14:03
窄的整型转换成较宽的整型时符号扩展规则:如果最初的数值类型是有符号的,那么就执行符号扩展(即如果符号位为1,则扩展为1,如果为零,则扩展为0);如果它是char,那么不管它将要被提升成什么类型,都执行零扩展。
QQ截图20130128140353.png
(4.07 KB, 下载次数: 40)
下载附件
2013-1-28 14:03 上传
作者:
孔斌
时间:
2013-1-28 14:10
谢谢老师!!
作者:
打工人
时间:
2013-1-28 14:12
孔斌 发表于 2013-1-28 14:10
谢谢老师!!
:L同学。。我不是老师。。。咱都是同学! 这个题出自java解惑吧
作者:
孔斌
时间:
2013-1-28 14:18
{:soso_e179:},这个是我做的一道笔试题呢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2