• JAVA:移位运算符


    位运算符用来对二进制位进行操作,分为左移位操作和右移位操作。
    JAVA:移位运算符左移位运算符
      左移位运算的符号为<<,左移位运算符左面的操作元称作被移位数,右面的操作数称作移位量。
      特点
       是双目运算符。
       操作元必须是整型类型的数据。
      左位移的过程
       假设a是一个被移位的整型数据,n是位移量。
       a<<n运算的过程是通过将a的所有位都左移n位,每左移一个位,左边的最高位(即左边的第1位)上的0或1被移出丢弃,并用0填充右边的低位。
       ◆比如:对整形数 8<<1的计算
         8的二进制表示: 0000,0000,0000,0000,0000,0000,0000,1000
         左移一位的结果:0000,0000,0000,0000,0000,0000,0001,0000
      注意
       左位移操作是对整型数的操作,操作符两边必须是整型。
       比整型更小的数据类型数据将被转换成整型进行运算,比整型更大的数据类型数据是不能进行移位运算的。
       比整型更小的数据类型数据将被转换成整型时:对于正数将高位用0填充;负数将高位用1填充。
       例:
          byte a = -8;
          System.out.println(a<<2);
          结果:-32
          1111,1111,1111,1111,1111,1111,1111,1000
                    
          1111,1111,1111,1111,1111,1111,1110,0000
       在进行a<<n运算时
        如果a是byte、short或int型数据,系统总是先计算出n%32的结果m,然后进行a<<m运算。
        对于long型数据,系统总是先计算出n%64的结果m,然后进行a<<m运算。
        比如:
         对于int数 5<<1与5<<33的结果相等;
         对于long数 5<<1与5<<65的结果相等。
    JAVA:移位运算符右移位运算符
      右移位运算的符号为>>,右移位运算符左面的操作元称作被移位数,右面的操作数称作移位量。
      特点
       ◆是双目运算符。
       操作元必须是整型类型的数据。
      右位移的过程
       假设a是一个被移位的整型数据,n是位移量。
       a>>n运算的过程是通过将a的所有位都右移n位,每右移一个位,右边的最低位(即右边的第1位)上的0或1被移出丢弃,并用0或1填充左边的高位(a是正数时用0填充,负数时用1填充)。
       比如:对整形数 8>>1的计算
         8的二进制表示: 0000,0000,0000,0000,0000,0000,0000,1000
         右移一位的结果:0000,0000,0000,0000,0000,0000,0000,0100
      注意
       右位移操作是对整型数的操作,操作符两边必须是整型。
       比整型更小的数据类型数据将被转换成整型进行运算,比整型更大的数据类型数据是不能进行移位运算的。
       比整型更小的数据类型数据将被转换成整型时:对于正数将高位用0填充;负数将高位用1填充。
       例:
          byte a = -8;
          System.out.println(a>>2);
          结果:-2
          1111,1111,1111,1111,1111,1111,1111,1000
                  ↓
          1111,1111,1111,1111,1111,1111,1111,1110
       在进行a>>n运算时
        如果a是byte、short或int型数据,系统总是先计算出n%32的结果m,然后进行a>>m运算。
        对于long型数据,系统总是先计算出n%64的结果m,然后进行a>>m运算。
        比如:
          对于int数 5>>1与5>>33的结果相等;
          对于long数 5>>1与5>>65的结果相等。

  • 相关阅读:
    ueditor富文本编辑在 asp.net MVC下使用步骤
    C#中Socket用法,多个聊天和单一聊天。
    事件与委托的联系和区别
    异步调用backgroudworker
    C#事件作用和用法
    如何遍历protected object转化为数组
    获取后台用户 token 的方法
    Magento2 中如何使用curl
    curl 错误排查方法
    Magento 2 REST API入门
  • 原文地址:https://www.cnblogs.com/hudingbo/p/3541373.html
Copyright © 2020-2023  润新知