zoukankan      html  css  js  c++  java
  • Java_按位与&,按位或,取反,左移,右移运算符

    //按位与运算&
    System.out.println(0&0);//0
    System.out.println(0&1);//0
    System.out.println(1&1);//1
    System.out.println("===========");
    //按位或运算符|
    System.out.println(0|0);//0
    System.out.println(0|1);//1
    System.out.println(1|1);//1
    System.out.println("===========");
    //异或运算符^
    System.out.println(0^0);//0
    System.out.println(0^1);//1
    System.out.println(1^1);//0
    System.out.println("===========");
    //取反运算符~
    //部分要点:
    //什么是取反:取反就是0=>1 1=>0
    //什么是补码:正数的补码是其反码,负数的补码为其反码+1,例5的二进制为0 0101,而0 0101的补码是1 1010,-5的二进制是1 0101,而1 0101的补码是1 1011 
    //什么是原码:规定正数的补码与原码相同,负数的原码是其反码+1
    //---------------------------------------------------------
    //6为正数,二进制为 0 0110 (第一个0代表正负)
    //然后计算补码,即1 1001
    //求原码,对后4位进行按位取反,即 1 0110
    //然后对二进制进行补码+1操作,即 1 0111
    //1010转成十进制为7,加上前面的负号,得-7
    //如6为正数,其二进制为110,取反后为001,补码右边+1为1010,原来6为正,取反为负,得-2
    //----------------------------------------------------------
    System.out.println(~6);//-7
    System.out.println(~42);//-43
    System.out.println("===========");
    //左移运算符<<(即向左移动,右边补0)
    //如2的二进制为10,若2<<2,则1000,也就是十进制8,同理若2<<3,则10000,也就是十进制16,根据规律可以看出n<<m=n*(2^m)
    System.out.println(15<<2);//60: 15*(2^2)
    //右移有符号运算符>>(即向右移动,但左边补0还是1需要看原来的数是正的还是负的)
    System.out.println(2>>2); //0(右边移除的数将被丢弃)
    System.out.println(-8>>3); //-1
    
  • 相关阅读:
    android 和 java 调色板
    BroadCast简述
    android intent
    android intent隐身启动和Intent过滤器
    坦克大战(TankWar)
    android menu
    WAS5.1上LogFactory的错误
    持续加班的夜晚中
    忙,无心写blog
    曾经,我是那么的有激情
  • 原文地址:https://www.cnblogs.com/eRrsr/p/6401881.html
Copyright © 2011-2022 走看看