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

© 伊乐杰 中级黑马   /  2016-3-27 23:36  /  451 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.逻辑运算符(掌握)
        &(与):(见不到了)
                false & false = false
                true & false = false
                true & true = true
                false & true = false

        &&(双与):
                false && false = false
                true && false = false
                true && true = true
                false && true = false

        |(或):(见不到了)
                false | false = false
                false | true = true
                true | true = true
                true | false = true

        ||(双或):
                false || false = false
                false || true = true
                true || true = true
                true || false = true
               

        ^(异或):(见不到了)
                true ^ false = true
                false ^ false = false
                false ^ true = true
                true ^ true = false
       
        !(非):
                !false = true
                !true = false
                !!false = false
                !!!false = true
                !!!!false = false
                !!!!!false = true

2.位运算符(了解)
        计算机底层对数据进行位运算是用的数据的二进制的补码形式

        ~(按位取反)与负数的原码变反码的区别:
                ~是任何位多要取反,包括符号位,0变1,1变0
                负数的原码变反码是除去符号位,其他位取反

        ^(异或): a ^ b ^ b = a
                面试题:
                        实现两个变量值的交换
                                1.引用第三方变量
                                        int i = 1;
                                        int j = 2;
                                        int temp = i;
                                        i = j;
                                        j = temp;
                                2.使用位异或(^)
                                        int i = 1;
                                        int j = 2;
                                        i = i ^ j;
                                        j = i ^ j;//i ^ j ^ j = i
                                        i = i ^ j;//i ^ j ^ i ^ j ^ j = j

        <<(左移):
                公式: A << B = A * (2 ^ B)
                例: 3 << 2 = 3 * (2 ^ 2) = 12

        >>(右移):
                公式: A >> B = A / (2 ^ B)
                例: 3 >> 2 = 3 / (2 ^ 2) = 0

        >>>(无符号右移):
                >>>与>>的区别:
                        >>:如果是正数就补0,如果是负数就补1
                        >>>:不管是正数还是负数,都补0

3.三元运算符(三目运算符,条件运算符)(掌握)
        格式:条件表达式 ? 表达式1 : 表达式2;

        四种情况:
                情况一:
                        3 > 4 ? 3 : 4;//编译报错,因为条件运算符最终会得到一个结果,我们一定要用一个变量来接收

                情况二:
                        int i = 3 > 4 ? 3 : 4;//编译正确

                情况三:
                        3 > 4 ? System.out.println(3) : System.out.println(4);//编译报错

                情况四:
                        ??? a = 3 > 4 ? System.out.println(3) : System.out.println(4);//编译报错,因为条件运算符最终一定要得到一个结果,所以表达式1和表达式2里面不可以是输出语句
您需要登录后才可以回帖 登录 | 加入黑马