Java中位运算(移位、位与、或、异或、非) 的简单实例

 更新时间:2013年02月28日 16:53:22   作者:  
Java中位运算(移位、位与、或、异或、非) 的简单实例,需要的朋友可以参考一下
复制代码 代码如下:

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 
    } 
}

相关文章

  • springboot中@Async默认线程池导致OOM问题

    springboot中@Async默认线程池导致OOM问题

    这篇文章主要介绍了springboot中@Async默认线程池导致OOM问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 使用Springboot封装一个自适配的数据单位转换工具类

    使用Springboot封装一个自适配的数据单位转换工具类

    我们在接收前台传输的数据时,往往SpringBoot使用内置的数据类型转换器把我们提交的数据自动封装成对象等类型,下面这篇文章主要给大家介绍了关于使用Springboot封装一个自适配的数据单位转换工具类的相关资料,需要的朋友可以参考下
    2023-03-03
  • Spring常用注解汇总

    Spring常用注解汇总

    这篇文章主要介绍了Spring常用注解汇总,需要的朋友可以参考下
    2014-08-08
  • java集合框架线程同步代码详解

    java集合框架线程同步代码详解

    这篇文章主要介绍了java集合框架线程同步代码详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 实例详解Java库中的LocalDate类

    实例详解Java库中的LocalDate类

    在做报表统计时,需要对指定时间内的数据做统计,则需要使用到时间日期API,下面这篇文章主要给大家介绍了关于Java库中LocalDate类的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • java必学必会之网络编程

    java必学必会之网络编程

    java必学必会之网络编程,学习了解java网络编程、网络通信协议、TCP协议和UDP协议,对各个协议进行深入学习,做到必学必会
    2015-12-12
  • Java WeakHashMap案例详解

    Java WeakHashMap案例详解

    这篇文章主要介绍了Java WeakHashMap案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java线程和操作系统线程的关系解读

    Java线程和操作系统线程的关系解读

    这篇文章主要介绍了Java线程和操作系统线程的关系解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 关于SpringBoot集成Lettuce连接Redis的方法和案例

    关于SpringBoot集成Lettuce连接Redis的方法和案例

    这篇文章主要介绍了关于SpringBoot集成Lettuce连接Redis的方法和案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • mybatis使用mapper代理开发方式

    mybatis使用mapper代理开发方式

    使用MyBatis代理开发模式时,需要注意定义与映射配置文件同名的接口类,确保namespace属性与接口路径一致,接口方法名和映射文件中的id名称相同,返回类型保持一致,在mybatis-config.xml中配置映射文件路径,保证结构一致,可通过注解@Param传递多个参数
    2024-10-10

最新评论