美文网首页
移位操作符

移位操作符

作者: PuHJ | 来源:发表于2018-01-19 10:39 被阅读13次

1、介绍

移位操作符只可处理整数类型。

  • << : 左移位操作符(i<<2),顾名思义,即在将整个字节向左移动n位(自己定义的),字节的低位则会补上n位0.
  • :>> : 右移位操作符(i>>2),分两种情况,一种是正数,一种是负数。有符号的字节,第一位表示正负,0代表正数,1代表负数
    正数:高位插入n个0,
    负数:高位插入n个1;
  • :>>>: 无符号的右移(i>>>2),无论正负,都将在高位插0
    小结:左移位相当于*2的n次方,右移相当于/的n次方2。

2、举例

public static void main(String[] args) {
    int i = -1;
    System.out.println(Integer.toBinaryString(i));
    i>>>=10;
    System.out.println(Integer.toBinaryString(i));
    i = 15;
    System.out.println(Integer.toBinaryString(i));
    i>>=1;
    System.out.println(Integer.toBinaryString(i));
}

打印结果如下:

11111111111111111111111111111111
1111111111111111111111
1111
111

说明:

Java中使用32bit保存Integer型,64bit保存Long型。对于int型的15,则会省略前面的0,所以打印1111;

3、byte和short类型

  • byte :8bit,只占一字节
  • short : 16bit,只占两字节
    特别说明:对于byte和short类型进行移位时候,会自动将byte和short装换成32bit,再移位。移位完成后会将截断成对应的位数,赋值给原来的类型
public static void main(String[] args) {
     byte i = -1;
      System.out.println(Integer.toBinaryString(i));
      i>>>=10;
      System.out.println(Integer.toBinaryString(i));
      i = -1;
      System.out.println(Integer.toBinaryString(i));
      System.out.println(Integer.toBinaryString(i>>>10));
}

####结果如下:
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
1111111111111111111111

相关文章

  • java二进制表示形式与移位操作符

    1.java二进制表示形式 2.移位操作符1.左移位操作符(<<)2.“有符号”右移位操作符(>>)3.“无符号”...

  • 一文彻底弄懂Java的移位操作符

    前言 对于移位操作符,很多人既感到熟悉,又感到陌生。熟悉是因为移位操作符是最基本的操作符之一,几乎每种编程语言都包...

  • 移位操作符

    1、介绍 移位操作符只可处理整数类型。 << : 左移位操作符(i<<2),顾名思义,即在将整个字节向左移动...

  • 移位操作符

    java中有三种移位运算符 <<:左移位操作符,能按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位补0...

  • 第5章,操作符和表达式

    位操作符 1、&(AND) |(OR) ^(XOR) 2、移位操作 条件操作符 类似这样的,b=a>5?3:...

  • c语言第七讲 操作符和表达式

    目标 操作符介绍 表达式求值 操作符号 操作符的分类 算术操作符 移位操作符 位操作符 赋值操作符 单目运算符 关...

  • 移位操作符

    下面以数17为例展示一下对正负17进行移位后的结果 正数17机器码表示为 负数17机器码表示为(原码求反再加1) ...

  • Shift Operator

    按位操作符 逻辑移位均补0算术移位左移补0右移正数补1 负数补0看左数第一位

  • 6.4 移位操作符

    文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至简书平台,以此...

  • js 移位操作符

    1、左移运算(<<)## 在右边补0,数字变大 2、右移运算(>>)## 在左边补0,数字变小 3、无符号右移运算...

网友评论

      本文标题:移位操作符

      本文链接:https://www.haomeiwen.com/subject/eykooxtx.html