zoukankan      html  css  js  c++  java
  • Java 基础入门随笔(3) JavaSE版——逻辑运算符、位运算符

            上一节写了一些运算符的注意事项,这节开头依然是对运算符的一些注意点的阐述!

      比较运算符除了>、>=、<、<=、==、!=之外需要注意instanceof:检查是否是类的对象,例如:”Hello” instanceof String ,返回结果位true。

    1.逻辑运算符

           &(与)的运算特点:运算的两边只要有一个是false,结果肯定是false,只有两边都为true,结果才true;

           |(或)的运算特点:运算的两边只要有一个是true,结果肯定是true,只有两边都为false,结果是false;

           ^(异或)的运算特点:运算的两边结果如果相同,结果是false,两边的结果不同,结果是true;

          !(非)的运算特点:判断事物的另一面;

           &&(短路 双与)的运算特点:与&运算基本一致,只是&&当左边为false时,右边不参与运算的,而&两边都得运算;

            ||(短路 双或)的运算特点:与|运算基本一致,只是||当左边为true时,右边不参与运算的,而|两边都得运算;

    2.位运算符

            &(与位运算符):运算特点与逻辑运算符的&一样,只是这里针对二进制的位运算,例如:6&3=2;(二进制原理:110&011=010),任何数与位为1取&运算都为原来数(作用取某些有效位数);

            | (或运算符):运算特点或逻辑运算符的&一样,只是这里针对二进制的位运算,例如:6|3=7;(二进制原理:110|011=111);

            ^(异或运算符):运算特点与逻辑运算符的^一样,只是这里针对二进制的位运算,例如:6^3^3 = 6,注:当一个数异或运算同一个数两次,结果还是这个数本身(作用为加密的效果)

           ~ (反码运算符):运算特点与符逻辑运算符中的!一致的。

           <<(左移运算符):左移几位其实就是该数据乘以2的几次方。可以完成2的次幂运算!       eq:3<<2 = 3*2(2) = 12;

           >> (右移运算符) : 右移几位其实就是该数据除以2的几次幂。对于高位出现的空位,原来高位是什么就用什么补这个空位!       eq:3>>2 = 3/2(2) = 3/4 = 0;

          >>>(无符号右移运算符):数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。

    练习:

    1.//最有效率的方式算出2乘以8等于几? 答案:System.out.println(2<<3);

    2.对两个整数变量的值进行互换 ? 

      答案:

    开发时,使用第三方变量的形式,因为阅读性强。
            int c ;
            c = a;
            a = b;
            b = c;

    这种方式不要用,如果两个整数的数值过大,会超出int范围,会强制转换。数据会
    变化。

            a = a + b; //a = 3 + 5;a = 8;
            b = a - b; //3+5-5 = 3;b = 3;
            a = a - b; //3+5-3 = 5;a = 5;

    面试的时候用。
            a = a ^ b; //a = 3 ^ 5;
            b = a ^ b; //b = (3^5)^5; b = 3;
            a = a ^ b; //a = (3^5)^3; a = 5;

  • 相关阅读:
    关于GCD同步组实现多个异步线程的同步执行中的注意点
    (七)Redis对键key的操作
    (六)Redis有序集合Sorted set操作
    (五)Redis集合Set操作
    (四)Redis哈希表Hash操作
    (三)Redis列表List操作
    (二)Redis字符串String操作
    (一)Redis简介及安装
    Python对文件和文件夹的高级操作模块shutil
    Python文件传输模块ftplib
  • 原文地址:https://www.cnblogs.com/Anand/p/4550440.html
Copyright © 2011-2022 走看看