zoukankan      html  css  js  c++  java
  • java中位运算^,&,<<,>>,<<<,>>>

     1.^(亦或运算) ,针对二进制,相同的为0,不同的为1

    public static void main(String[] args) {
        System.out.println("2^3运算的结果是 :"+(2^3));
        //打印的结果是:   2^3运算的结果是 :1
    }

    2 =======>0010

    3 =======>0011

    2^3就为0001,结果就是1

    2.&(与运算) 针对二进制,只要有一个为0,就为0

    还是上述的例子

    public static void main(String[] args) {
             System.out.println("2&3运算的结果是 :"+(2&3));
             //打印的结果是:   2&3运算的结果是 :2
         }

    3 <<表示左移移,不分正负数,低位补0 

    注:以下数据类型默认为byte-8位

    左移时不管正负,低位补0

    正数:r = 20 << 2

      20的二进制补码:0001 0100

      向左移动两位后:0101 0000

             结果:r = 80

    负数:r = -20 << 2

      -20 的二进制原码 :1001 0100

      -20 的二进制反码 1110 1011

      -20 的二进制补码 :1110 1100

      左移两位后的补码:1011 0000

            反码:1010 1111

            原码:1101 0000

            结果:r = -80

    4  >>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;

    注:以下数据类型默认为byte-8位

    正数:r = 20 >> 2

      20的二进制补码:0001 0100

      向右移动两位后:0000 0101

           结果:r = 5

    负数:r = -20 >> 2

      -20 的二进制原码 :1001 0100

      -20 的二进制反码 :1110 1011

      -20 的二进制补码 :1110 1100 

      右移两位后的补码:1111 1011 

            反码:1111 1010

            原码:1000 0101

            结果:r = -5

    5  >>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0

    正数: r = 20 >>> 2

        的结果与 r = 20 >> 2 相同;

    负数: r = -20 >>> 2

    注:以下数据类型默认为int 32位

      -20:源码:10000000 00000000 00000000 00010100

        反码:11111111  11111111   11111111   11101011

        补码:11111111  11111111   11111111   11101100

        右移:00111111  11111111   11111111   11111011

        结果:r = 1073741819

    i++:后加加,在表达式中,变量i先参与运算,再完成自增加1

    ++i:前加加,在表达式中,变量i先完成自增1,再参与运算

    • i++ 先赋值再运算,即先 a = i,后 i = i+1;
    • ++i 先运算再赋值,即先 i = i+1,后 a = i;

     https://www.cnblogs.com/chuijingjing/p/9405598.html

  • 相关阅读:
    js属性对象的hasOwnProperty方法
    利用递归的方式在JSON 数据中找到某个节点的多有父节点
    数组中的方法 --- 不改变原数组的方法
    数组中的方法-- 会改变原数组的
    break continue return 的区别
    解决vue中对象属性改变视图不更新的问题
    怎么实现无痛刷新token
    正则的使用记录
    一级域名的登录信息在二级域名中获取
    没有什么问题是不能通过增加一个抽象层解决的
  • 原文地址:https://www.cnblogs.com/dingpeng9055/p/11725616.html
Copyright © 2011-2022 走看看