专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java移位运算符详解实例

Java移位运算符详解实例

更新时间:2020-09-16 15:22:00 来源:动力节点 浏览2090次

移位运算符它主要包括:左移位运算符(<<)、右移位运算符(>>>)、带符号的右移位运算符(>>),移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。

运算符 含义
<< 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
>>  "有符号"右移运算   符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.  
>>>  "无符号"右移运算   符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0

1.左移运算符

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

public class test{
    public static void main(String[] args) {
        int a=2,b=2,c;
        c=a<

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

2.无符号右移运算符

右移运算符无符号用“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补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

3.带符号的右移运算符

带符号右移运算符用“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补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移位运算符详解实例”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>