黑马程序员技术交流社区

标题: 数据类型转换 [打印本页]

作者: 追梦天涯33    时间: 2015-8-28 00:04
标题: 数据类型转换
隐式转换:
        强制转换:


        面试题:
                第一题:
                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).






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2