黑马程序员技术交流社区

标题: 位运算的使用练习 [打印本页]

作者: wuyingtong    时间: 2015-4-23 16:56
标题: 位运算的使用练习
/*
需求1:请用最有效率的方式计算出2乘以8的结果?
分析:使用位运算是最有效率的方式,因为是乘法运算,所以是左移。

需求2:请自己实现2个整数变量的交换。
分析:四种方法
        A:使用第三方变量
        B:使用加法运算
        C:使用^运算符运算
        D:一句话搞定
*/
class OperatorDemo1{
        public static void main(String[] args){
        //需求1:请用最有效率的方式计算出2乘以8的结果?
                //先定义一个变量max来接收运算后的结果。
                int max = 2<<3;//因为8是2的3次方,所以左移3位。
                        System.out.println("max="+max);
        System.out.println("---------------------");
               
        //需求2:请自己实现2个整数变量的交换。
                //A:使用第三方变量
                int a = 10;
                int b = 20;
                        System.out.println("a="+a+",b="+b);
                //int temp = a;
                //        a = b;
                //        b = temp;
                //        System.out.println("a="+a+",b="+b);
        System.out.println("---------------------");
                //B:使用加法运算
                //        a = a+b;//先将a和b的和计算出来,再用和去减
                //        b = a-b;
                //        a = a-b;
                //        System.out.println("a="+a+",b="+b);
        System.out.println("---------------------");
                //C:使用位异或
                //        a = a ^ b;
                //        b = a ^ b;//相当于a^b^b=a
                //        a = a ^ b;//相当于a^a^b=b
                //        System.out.println("a="+a+",b="+b);
                //D:一句话搞定
                        b = (a+b)-(a=b);
                        System.out.println("a="+a+",b="+b);
        }
}



作者: wwfangfang    时间: 2015-4-23 17:38
来学习一下……
作者: 893269222    时间: 2015-4-23 17:55
第四种一句话搞定受教了,
作者: caotierong    时间: 2015-4-23 18:07
b = (a+b)-(a=b);
System.out.println("a="+a+",b="+b);
这种方法是可以,但我有点不明白,它不应该先算a=b然后再算a+b再算(a+b)-(a=b)的吗?
求指教!
作者: YQliang    时间: 2015-4-23 18:16
学习学习!
作者: wuyingtong    时间: 2015-4-23 19:32
caotierong 发表于 2015-4-23 18:07
b = (a+b)-(a=b);
System.out.println("a="+a+",b="+b);
这种方法是可以,但我有点不明白,它不应该先算a= ...

运算是从左到右的,因为都有小括号,
作者: yxnheima    时间: 2015-4-23 19:53
赞一下。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。




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