黑马程序员技术交流社区

标题: 三元运算符中表达式1与表达式2之间的数据类型自动提升问题 [打印本页]

作者: 欧阳宇    时间: 2015-4-29 17:48
标题: 三元运算符中表达式1与表达式2之间的数据类型自动提升问题
class OperateDemo
{
        public static void main(String[] args)
        {

               int num = 60;

                //获取60的最低4位,通过&15;
                int n1 = num & 15;
                        System.out.println((char)((n1>9)?(char)(n1-10+'A'):n1));
                       
                        //要获取下一组四位,将60右移4位。
                int  temp = 60 >>> 4;
                //  对temp的值进行最低四位的获取
                int n2 = temp & 15;
                        System.out.println((n2>9)?(char)(n2-10+'A'):n2);



          }
}
因为三元运算表达式1与表达式2之间有自动类型提升的存在,故第一个输出语句中虽然表达式1前面加了个强制char类型转换,输出的结果仍然是67。


作者: 下一页5    时间: 2015-4-29 19:07
还没想到这个
作者: 柒夜    时间: 2015-4-29 20:49
还没西湖一到这个问题
作者: 魔心邪    时间: 2015-4-29 21:56
这个也能行,三元不常用到啊
作者: 黄文昭    时间: 2015-4-29 22:18
很经典!




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