• 技术文章 >Java >java教程

    Java 位运算(移位、位与、或、异或、非)

    高洛峰高洛峰2016-12-16 17:02:04原创538
    public class Test {
    public static void main(String[] args) {
    // 1、左移( << )
    // 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0://
    // 0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20
    System.out.println(5 << 2);// 运行结果是20

    // 2、右移( >> ) 高位补符号位
    // 0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:
    // 0000 0000 0000 0000 0000 0000 0000 0001
    System.out.println(5 >> 2);// 运行结果是1

    // 3、无符号右移( >>> ) 高位补0
    // 例如 -5换算成二进制后为:0101 取反加1为1011
    // 1111 1111 1111 1111 1111 1111 1111 1011
    // 我们分别对5进行右移3位、 -5进行右移3位和无符号右移3位:
    System.out.println(5 >> 3);// 结果是0
    System.out.println(-5 >> 3);// 结果是-1
    System.out.println(-5 >>> 3);// 结果是536870911

    // 4、位与( & )
    // 位与:第一个操作数的的第n位于第二个操作数的第n位如果都是1,那么结果的第n为也为1,否则为0
    System.out.println(5 & 3);// 结果为1
    System.out.println(4 & 1);// 结果为0

    // 5、位或( | )
    // 第一个操作数的的第n位于第二个操作数的第n位 只要有一个是1,那么结果的第n为也为1,否则为0
    System.out.println(5 | 3);// 结果为7

    // 6、位异或( ^ )
    // 第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0
    System.out.println(5 ^ 3);//结果为6

    // 7、位非( ~ )
    // 操作数的第n位为1,那么结果的第n位为0,反之。
    System.out.println(~5);// 结果为-6
    }
    }



    更多Java 位运算(移位、位与、或、异或、非)相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Java 位运算
    上一篇:java移位运算符详解 下一篇:JAVA移位运算符
    千万级数据并发解决方案

    相关文章推荐

    • 一起来理解Java中的泛型• 整理分享Java语言表达式的五个谜题• java反射机制详细解析(总结分享)• 快速上手Java数据结构之字符串• 详细整理java枚举的使用总结
    1/1

    PHP中文网