A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孔斌 中级黑马   /  2013-1-28 12:34  /  1234 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class Test1 {

  2.         /**
  3.          * 有关多重转型的问题
  4.          */
  5.         public static void main(String args[]){
  6.                 System.out.println((int)(char)(byte)-1);//65535
  7.         }
  8. }
复制代码
第一次转型是32位转为8位,第二次是扩展到16位,最后又回来到32位,而打印结果是65535,这是为什么呢?难道是组成原理里面的数值部分?

4 个回复

倒序浏览
窄的整型转换成较宽的整型时符号扩展规则:如果最初的数值类型是有符号的,那么就执行符号扩展(即如果符号位为1,则扩展为1,如果为零,则扩展为0);如果它是char,那么不管它将要被提升成什么类型,都执行零扩展。

回复 使用道具 举报
谢谢老师!!
回复 使用道具 举报
孔斌 发表于 2013-1-28 14:10
谢谢老师!!

:L同学。。我不是老师。。。咱都是同学! 这个题出自java解惑吧
回复 使用道具 举报
{:soso_e179:},这个是我做的一道笔试题呢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马