zoukankan      html  css  js  c++  java
  • 位移运算

    1)左移位运算符(<<)
      将运算符左边的对象向左移动运算符右边指定的位数,无论正负,在低位补零。
    2)"有符号" 右移运算符 (>>)
      将运算符左边的对象向右移动指定的位数,正数在高位补零,负数在高位补一。
    3)"无符号" 右移运算符 (>>>)
      将运算符左边的对象向右移动指定的位数,无论值正负,在高位补零。


    public static void main(String[] args) {
     System.out.println("--- 左移操作 ---");
     int num1 = 8;
     int num2 = -8;
     int num3 = num1 << 2; // 最右边补0
     int num4 = num2 << 3; // 最右面补0
     System.out.println("num1(8)的二进制表示:");
     System.out.println("num1(binary):" + Integer.toBinaryString(num1)); // 8的二进制表示
     System.out.println("8左移2位后的二进制结果:");
     System.out.println("num3(binary):" + Integer.toBinaryString(num3)); // 左移一位 相当于该数乘以2
     System.out.println("8左移2位后的十进制结果:");
     System.out.println("num3:" + num3);
     System.out.println("num2(-8)的二进制表示:");
     System.out.println("num2(binary):" + Integer.toBinaryString(num2)); // -8的二进制表示(2的反码+1)
     System.out.println("-8左移3位后的二进制结果:");
     System.out.println("num4(binary):" + Integer.toBinaryString(num4));
     System.out.println("-8左移3位后的十进制结果:");
     System.out.println("num4:" + num4);

     System.out.println();
     System.out.println("--- 有符号右移操作 ---");
     num1 = 8;
     num2 = -8;
     num3 = num1 >> 2; // 正数,最左边补0,负数,最左边补1
     num4 = num2 >> 3; // 正数,最左边补0,负数,最左边补1
     System.out.println("num1(8)的二进制表示:");
     System.out.println("num1(binary):" + Integer.toBinaryString(num1)); // 8的二进制表示
     System.out.println("8右移2位后的二进制结果:");
     System.out.println("num3(binary):" + Integer.toBinaryString(num3)); // 有符号右移一位 相当于该数除以2
     System.out.println("8右移2位后的十进制结果:");
     System.out.println("num3:" + num3);
     System.out.println("num2(-8)的二进制表示:");
     System.out.println("num2(binary):" + Integer.toBinaryString(num2)); // -8的二进制表示(2的反码+1)
     System.out.println("-8右移3位后的二进制结果:");
     System.out.println("num4(binary):" + Integer.toBinaryString(num4));
     System.out.println("-8右移3位后的十进制结果:");
     System.out.println("num4:" + num4);

     System.out.println();
     System.out.println("--- 无符号右移操作 ---");
     num1 = 8;
     num2 = -8;
     num3 = num1 >>> 2; // 最左边补0
     num4 = num2 >>> 3; // 最左边补0
     System.out.println("num1(8)的二进制表示:");
     System.out.println("num1(binary):" + Integer.toBinaryString(num1)); // 8的二进制表示
     System.out.println("8右移2位后的二进制结果:");
     System.out.println("num3(binary):" + Integer.toBinaryString(num3)); // 正数无符号右移一位 相当于该数除以2
     System.out.println("8右移2位后的十进制结果:");
     System.out.println("num3:" + num3);
     System.out.println("num2(-8)的二进制表示:");
     System.out.println("num2(binary):" + Integer.toBinaryString(num2)); // -8的二进制表示(2的反码+1)
     System.out.println("-8右移3位后的二进制结果:");
     System.out.println("num4(binary):" + Integer.toBinaryString(num4));
     System.out.println("-8右移3位后的十进制结果:");
     System.out.println("num4:" + num4);

    }

  • 相关阅读:
    Delphi 2010下安装IOComp
    为自定义控件的某个属性添加像Winform控件中属性的注释
    C#WinForm仿qq窗体拖到windows窗体边上时,自动隐藏C#WinForm
    给图片添加水印,解决GIF添加水印的问题(无法从带有索引像素格式的图像创建 Graphics 对象)
    怎样把Image数据放入数据库
    取消IE“已限制此网页运行可以访问计算机的脚本
    sql 二进制文件的导入导出
    [转载]数据结构笔试题基础
    [转载]搜索算法(含基本搜索算法与深度搜索与广度搜索算法等思想)
    [转载]面试笔试总结
  • 原文地址:https://www.cnblogs.com/keyiei/p/3584079.html
Copyright © 2011-2022 走看看