码迷,mamicode.com
首页 > 编程语言 > 详细

Java:位移运算符

时间:2018-01-02 20:01:55      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:info   不能   pre   inf   bin   符号   log   image   pos   

Java中有三个位移运算符,用于对int类型整数的二进制表示进行操作:

 

1. "<<": 左移运算符,在二进制表示末尾添加“0”,之前的其他位相当于左移了一位,可看作成“乘以二”操作。

   例如,a = 10,a 的二进制表示为“0000 0000 0000 0000 0000 0000 0000 1010”,“a << 1”表示a的二进制表示左移一位,结果为“0000 0000 0000 0000 0000 0000 0001 0100”,对应十进制的“20”。

            b =-10, b 的二进制表示为“1111 1111 1111 1111 1111 1111 1111 0110”,“b<<1”代表b的二进制表示左移一位,结果为“1111 1111 1111 1111 1111 1111 1110 1100”,对应十进制“-20”。

 

2. ">>": 右移运算符,去掉二进制表示末尾几位,并在最前面添加符号位正数添“0”、负数添“1”。">>1"去掉最后一位,">>2"去掉最后两位。不能单纯的看作成“除以二”操作。

   例如,a = 9, “a>>1"代表a的二进制表示“0000 0000 0000 0000 0000 0000 0000 1001”右移一位,结果为“0000 0000 0000 0000 0000 0000 0000 0100”,对应十进制的“4(不是“除以二”操作)

            b = -9,“b>>1”代表b的二进制表示“1111 1111 1111 1111 1111 1111 1111 0111”右移一位,结果为“1111 1111 1111 1111 1111 1111 1111 1011”,对应十进制的“-5”。

 

3. "<<<": 无符号右移运算符,不再考虑符号位,在最前面添加“0”(正数前面的“0”符号位可以省略)

   例如,b = -9,“b >>> 1”代表b的二进制表示“1111 1111 1111 1111 1111 1111 1111 0111”右移一位,结果为“0111 1111 1111 1111 1111 1111 1111 1011”,对应十进制的“2147483643”。

 

public class Test {
    public static void main(String[] args) {
        int a = -9;
        System.out.println("a = " + a);
        System.out.println("a的二进制表示:       " + Integer.toBinaryString(a));
        System.out.println("");
        // "<<"左移运算符
        int a1 = a << 1;
        System.out.println("a<<1 = " + a1);
        System.out.println("a<<1后的二进制表示:  " + Integer.toBinaryString(a1));
        System.out.println("");
        // ">>"右移运算符
        int a2 = a >> 1;
        System.out.println("a>>1 = " + a2);
        System.out.println("a>>1后的二进制表示:  " + Integer.toBinaryString(a2));
        System.out.println("");
        // 无符号右移运算符
        int a3 = a >>> 1;
        System.out.println("a >>> 1 =" + a3);
        System.out.println("a>>>1后的二进制表示: " + Integer.toBinaryString(a >>> 1));

    }
}

  

 

运行结果:

技术分享图片

2018-01-02 18:51:21

 

Java:位移运算符

标签:info   不能   pre   inf   bin   符号   log   image   pos   

原文地址:https://www.cnblogs.com/huiAlex/p/8178590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!