java移位运算符包括哪些?详细实例展示

BSO 2020-08-31 08:31:13 java常见问答 4069

在时代发展日新月异的今天,人们对于新兴技术展现出了极大的热情,学会一门新技术也是迫在眉睫的任务。今天主要为大家介绍一下java移位运算符包括哪几类,以及通过一个实例代码来展示。

首先,为大家简述一下,移位运算符主要包括:1.左移位运算符(<<)、2.右移位运算符(>>>)、3.带符号的右移位运算符(>>)。移位运算符操作的对象是二进制的位,可以单独用移位运算符来处理int型整数。通过一个表格为大家整体描述一下:

java移位运算符分类

第一种是左移运算符, 左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n位,就相当于乘上2的n次方,如下所示:

public class test
{
    public static void main(String[] args)
    {
        int a = 2, b = 2, c;
        c = a << b;
        System.out.print("a 移位的结果是" + c);
    }
}
输出结果: 8

通过分析上面的代码我们可以发现,2的二进制是00000010,它向左移动2位,就变成了00001000,即8。如果从另一个角度来分析,它向左移动2位,其实就是乘上2的2次方,结果还是8。

第二种是无符号右移运算符,右移运算符无符号用“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0,其实右移n位,就相当于除上2的n次方。代码如下:

public class test
{
    public static void main(String[] args)
    {
        int a = 16;
        int b = 2;
        System.out.println("a 移位的结果是" + (a >>> b));
    }
}
输出结果: 4

通过分析上面代码可以发现,16的二进制是00010000,它向右移动2位,就变成了00000100,即4。如果从另一个角度来分析,它向右移动2位,其实就是除以2的2次方,结果还是4。

第三种是带符号的右移运算符,带符号右移运算符用“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补1。代码如下所示:

public class test
{
    public static void main(String[] args)
    {
        int a = 16;
        int c = -16;
        int b = 2;
        int d = 2;
        System.out.println("a 的移位结果:" + (a >> b));
        System.out.println("c 的移位结果:" + (c >> d));
    }
}
输出结果: 4 和 - 4

通过分析上面的代码可以发现,a的值是16转换成二进制是00010000,让它右移两位成00000100即4,c的值是-16转换成二进制是11101111,让它右移一位成11111011即-4。

以上就是关于java移位运算符的分类以及实例展示的相关内容。想要了解更多java经典例子,敬请关注奇Q工具网。

推荐阅读:

java怎样跨服务器上传文件?详细实例展示

java如何实现进度条开发的流程?详细实例展示

java进度条功能的实现原理是什么?实例展示