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

© yonghong_cui 中级黑马   /  2015-9-5 07:55  /  238 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

03.03_Java语言基础(位运算符的基本用法1)(了解)
* A:位运算符有哪些
        * &,|,^,~ ,>>,>>>,<<
* B:案例演示
        * 位运算符的基本用法1
       
        * &,|,^,~ 的用法
        * &:有0则0
        * |:有1则1
        * ^:相同则0,不同则1
        * ~:按位取反
案例:
class Demo1_Operator {

        public static void main(String[] args) {

                /*

                * &,|,^,~ 的用法

                * &:有0则0

                * |:有1则1

                * ^:相同则0,不同则1

                * ~:按位取反

                */



                System.out.println(6 & 3);                                //2

                System.out.println(6 | 3);                                //7

                System.out.println(6 ^ 3);                                //5       

                System.out.println(~6);                                        //-7?                                       

        }

}

/*

        110

&        011

-----------

    010



        110

|        011

-----------

    111



        110

^        011

-----------

    101



        00000000 00000000 00000000 00000110                6的原码反码补码都是本身

        11111111 11111111 11111111 11111001                对6取反

-        00000000 00000000 00000000 00000001

---------------------------------------

        11111111 11111111 11111111 11111000                反码

        10000000 00000000 00000000 00000111                原码(-7)

*/



###03.04_Java语言基础(位异或运算符的特点及面试题)(掌握)
* A:案例演示
        * 位异或运算符的特点

        * ^的特点:一个数据对另一个数据位异或两次,该数本身不变。
       
* B:面试题:
        * 请自己实现两个整数变量的交换
        * 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。
案例:
class Demo2_Operator {

        public static void main(String[] args) {

                /*

                * 位异或运算符的特点



                * ^的特点:一个数据对另一个数据位异或两次,该数本身不变。

                */



                //System.out.println(5 ^ 10 ^ 10);

                //System.out.println(5 ^ 10 ^ 5);



                /*

                * 请自己实现两个整数变量的交换(不需要定义第三方变量)

                * 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。

                */



                int x = 10;

                int y = 5;



                //需要第三方变量,开发推荐用这种

                /*int temp;

                temp = x;

                x = y;

                y = temp;*/



                //不需要定义第三方变量,有弊端,有可能会超出int的取值范围

                /*x = x + y;                                //10 + 5 = 15

                y = x - y;                                //15 - 5 = 10

                x = x - y;                                //15 - 10 = 5*/



                //不需要第三方变量,通过^来做

                x = x ^ y;                                // 10 ^ 5

                y = x ^ y;                                // 10 ^ 5 ^ 5        y = 10

                x = x ^ y;                                // 10 ^ 5 ^ 10  x = 5



                System.out.println("x = " + x + ",y = " + y);

        }

}


0 个回复

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