• & 和 && 的区别,与(&)运算符、位移运算符(<< 、>>、>>>)的含义及使用(Java示例)


    & 和 && 的区别,与(&)运算符、位移运算符(<< 、>>、>>>)的含义及使用(Java示例)

    1. & 和 &&

    & 和 && 都是逻辑运算符 都是判断两边是否为真

    运算符两边没有值的改变时,两者结果一样

    运算符两边有值改变时,&会两侧都执行运算,&&只会在两侧都是两侧都是true时两侧都进行运算否则只执行左侧

    • 运算符两边没有值的改变时
    @Test
    public void Operator(){
        int m =1,n =2;
        System.out.println(m>0&n>0);
        System.out.println(m>0&&n>0);
    }
    /*
      * 输出结果:
        true
        true
      * */
    
    • 运算符两边有值改变时
    @Test
    public void Operator(){
        int m =1,n =1;
        System.out.println((m++>2&m++>0) + "  " + m);
        System.out.println((n++>2&&n++>0) + "  " + n);
    }
     /*
      * 输出结果:
        false  3
        false  2
      * */
    
    

    两侧都为true时两侧都执行运算

    @Test
    public void Operator() {
        int m = 1, n = 1;
        System.out.println((m++ > 2 & m++ > 0) + "  " + m);
        System.out.println((n++ > 0 && n++ > 0) + "  " + n);
    }
    /*
    * 输出结果
    false  3
    true  3
    * */
    

    2. 与(&)运算符

    & 运算符是对数值转化为二进制进行&运算,对应位都为1是取1否则取0 例如:

    128的二进制表示为1000 0000

    129的二进制表示为1000 0001

    ​ 128&129 10000000

    128&129 —>128

    3&2 —>2

    128&127—>0

    @Test
    public void AndOperator(){
        System.out.println(128&129);
        System.out.println(3&2);
        System.out.println(128&127);
    }
    /*
    * 输出结果:
    128
    2
    0
    * */
    

    3.移位运算符

    百科解释

    在数据在二进制的前提下:

    "<<" 表示向左移动指定的二进制位数,低位空位补零,相当于在后边直接加上指定个数的0,

    如:2<<1—>4,3<<1—>6;

    "<<" 表示向右移动指定的二进制位数低位舍弃,高位空位补零,相当于在末尾直接去掉指定的位数,

    如:2>>1—>1,128>>3—>16;

    “>>>”按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
    其他结构和>>相似

  • 相关阅读:
    ACL最大权限及相关命令
    ACL权限设置
    Linux权限管理--ACL权限简介
    Linux用户信息文件/etc/passwd
    本地光盘yum源的搭建
    响应式 和 移动 web
    svg
    vi 命令
    html 语法
    运营给的广告设计稿如何做
  • 原文地址:https://www.cnblogs.com/awayfly/p/9907905.html
Copyright © 2020-2023  润新知