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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 追梦天涯33 中级黑马   /  2015-8-28 00:04  /  284 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

隐式转换:
        强制转换:


        面试题:
                第一题:
                byte b1=3,b2=4,b;
                b=b1+b2;
                b=3+4;
                哪句是编译失败的呢?为什么呢?
         答:第一句编译失败,因为系统默认的输出类型是int型,所以如果进行输出的话
             系统会报错,提示有可能损失精度。可以定义为b=(byte)(b1+b2),进行强制             转换。

                第二题:
                byte  by = 130;有没有问题?有问题如何解决?结果是多少呢?
          答:有问题,编译报错可能损失精度。应该定义为byte by = (byte)130
             结果为-126,根据老师讲的-126的生成原理,是把8个bit前面的bit直接                切掉,那么他的精度已经损失,这个值还能用吗???

                byte by =300; by是又是多少呢?
            答:同上不能编译,byte by = (byte)300;结果是(300-256=44);所以结果                是44。规律:定义byte by = m;m是常数则其结果应满足
              (-128<(m-256n)<127).

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马