Java运算符使用总结(重点:自增自减位运算和逻辑运算)

Posted fwnboke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java运算符使用总结(重点:自增自减位运算和逻辑运算)相关的知识,希望对你有一定的参考价值。

     Java运算符共包括这几种:算术运算符、比较运算符、位运算符、逻辑运算符、赋值运算符和其他运算符。(该图来自网络)

技术分享图片

简单的运算符,就不过多介绍使用了,可自行测试。关于赋值运算,可以结合算术运算和位运算来简化代码。

        int a = 5;
        a += a; // a = a + a;
        a -= a; //a = a - a;
        a /= a; // a = a / a;
        a %= a; // a = a % a;
        a &= 6; // a = a & 6;
        //.....

 

理解自增自减运算符

自增自减分为前置和后置。例如:i++  ++i i-- --i。 要明确一点,前置与后置的自增或自减如果没有运用到表达式运算中,那么是没区别的,若是参与到表达式的运算中,只需记住:谁在前面就先执行谁。

        int a = 0;
        a++; //或者++a
        System.out.println(a); // a输出1 
    //最常见的for循环中,在迭代条件中,i++ 和 ++i无区别,因为没有用于表达式。

 将前置自增和后置自增运用到表达式中。

        int a = 5;
        System.out.println(a--); //5,先打印a的值,之后a自减1
        System.out.println(a); //4
        System.out.println(++a); //5, 先对a值自增,然后打印a值

复杂一点,更好的理解前置和后置的区别:

        int a = 6;
        int b = 8;
        int c = ++a + b-- - a-- + --b + b++ + --a;
        System.out.printf("%d|%d|%d", a,b,c); // 5,7,25

使用图片来理解会更加一目了然。

技术分享图片

 

 再随便给一个,按照图示方式去理解自增自减。

        int a = 6,b = 8;
        int c = (--a) + (a--) - (b--) + (++b) + (a++) - (b--); //加括号更容易阅读
//        int c = --a + a-- - b-- + ++b + a++ - b--;
        System.out.printf("%d|%d|%d", a,b,c); // 5,7,6
    }

技术分享图片

 

 

 

 

在Java中,位运算常用的就是移位运算了。所以会按照个人的理解去回顾这个知识点,不会太深入。如果对位运算感兴趣的可以去其他博客搜搜,讲解非常详细。
 移位运算所进行的操作是在二进制的基础之上对数字进行平移,有左移运算和右移运算。
给一个代码例子:

//测试右移位运算 
//结果是1 和 0
System.out.println(6>>2); //6右移2位
System.out.println(8>>5); //8右移5位

本质是二进制的运算,所以我们将6 和 8转成二进制。

如果不懂二进制也可以使用电脑自带的计算器,改成程序员用的就可以了。但建议一定要学会二进制,并且熟练与八进制和十六进制的转换,会让你更明白计算机原理。

进入正题:
//6的二进制
0000 0000 0110

0000 0000 0001 //右移2位

//1 乘以2的0次方 输出1

//8的二进制
0000 0000 1000
0000 0000 0000 //右移5位

//0乘以2的0次方 输出0

//测试左移运算
//结果为128 192
System.out.println(4<<5);
System.out.println(3<<6);

//4的二进制
0000 0100
1000 0000 //左移5位
//1乘以2的7次方 输出128 

//3的二进制
0000 0011
1100 0000 //左移6位

//1乘以2的7次方 + 1乘以2的6次方 输出192

 

上面是以二进制的平移方式来得出的,还有取巧的方式,计算2的次方非常迅速。

就是:左移几位就乘以2的几次方 , 右移几位就除以2的几次方

以 4<<5 为例   : 就是4 乘以 2 的5次方 4 * 32 可以很快得出结果128

10>>2 : 10除以 2的2次方  10/4 = 2

要想得到2的10次方 只需要 1<<10 即可。

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

关于下图的Java运算符,不需要去记优先级,使用括号运算符能更好的增加可读性。

技术分享图片

















以上是关于Java运算符使用总结(重点:自增自减位运算和逻辑运算)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA自增自减运算符,i++,++i

Java 自增自减运算符和移位运算符介绍

java自增自减运算符

Java自增自减运算符

小白自学JAVA 一元运算 和 逻辑运算

自增、自减运算符的使用?