Java SE位运算和移位运算使用及注意事项

 更新时间:2026年07月24日 15:21:23   作者:渴望力量的土狗  
想知道位运算和移位运算怎么用吗?本文详细讲解按位与、按位或、按位取反、按位异或的规则,以及左移、右移、无符号右移的区别,帮你轻松掌握这些运算符,提升编程效率

1.位运算

1.1按位与 &:

如果两个二进制位都是 1, 则结果为 1, 否则结果为 0

public class Test {
    public static void main(String[] args) {
        int a=10;
        int b=1;
        int c=a&b;
        System.out.println(c);
    }
}

1.2按位或 |:

如果两个二进制位都是 0, 则结果为 0, 否则结果为 1

public class Test {
    public static void main(String[] args) {
        int a=10;
        int b=1;
        int c=a|b;
        System.out.println(c);
    }

}

1.3按位取反 ~:

如果该位为 0 则转为 1, 如果该位为 1 则转为 0

public class Test {
    public static void main(String[] args) {

        int a=10;
         a=~a;
        System.out.println(a);
    }

}

1.4按位异或 ^:

如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1

public class Test {

    public static void main(String[] args) {
        int a=10;
        int b=1;
        int c=a^b;
        System.out.println(c);
    }

}

 

2.移位运算

2.1 左移 <<:

最左侧位不要了, 最右侧补 0

public class Test {

    public static void main(String[] args) {
        int a=10;
        int b=a<<1;
        System.out.println(b);

    }

}

2.2右移 >>:

最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

public class Test {
    public static void main(String[] args) {
        int a=10;
        int b=a>>1;
        System.out.println(b);
    }


}

 

2.3无符号右移 >>>:

最右侧位不要了, 最左侧补 0.

public class Test {
    public static void main(String[] args) {
        System.out.println(1>>>1);
        System.out.println(-1>>>1);
    }

}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java简单实现自定义日历

    java简单实现自定义日历

    这篇文章主要为大家详细介绍了java简单实现自定义日历,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • struts2单个文件上传的两种实现方式

    struts2单个文件上传的两种实现方式

    这篇文章主要介绍了struts2单个文件上传的两种实现方式,有需要的朋友可以参考一下
    2014-01-01
  • IDEA中用maven连接数据库的教程

    IDEA中用maven连接数据库的教程

    这篇文章主要介绍了IDEA中用maven连接数据库的教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Mybatis逆向工程实现连接MySQL数据库

    Mybatis逆向工程实现连接MySQL数据库

    本文主要介绍了Mybatis逆向工程实现连接MySQL数据库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Java排序算法总结之归并排序

    Java排序算法总结之归并排序

    这篇文章主要介绍了Java排序算法总结之归并排序,较为详细的分析了归并排序的原理与java实现技巧,需要的朋友可以参考下
    2015-05-05
  • Mybatis的resultMap返回map问题

    Mybatis的resultMap返回map问题

    这篇文章主要介绍了Mybatis的resultMap返回map问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java IO流对象的序列化和反序列化实例详解

    Java IO流对象的序列化和反序列化实例详解

    这篇文章主要介绍了Java IO流对象的序列化和反序列化实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • springboot中500错误的问题解决

    springboot中500错误的问题解决

    本文详细介绍了Spring Boot中处理500错误的几种方法,包括自定义异常、可预知异常和不可预知异常的分类处理,具有一定的参考价值,感兴趣的可以了解一下
    2025-11-11
  • mybatis连接PGSQL中对于json和jsonb的处理方法

    mybatis连接PGSQL中对于json和jsonb的处理方法

    在使用PostgreSQL数据库时,将表字段设置为jsonb格式可以存储JSON数据,本文给大家介绍mybatis连接PGSQL中对于json和jsonb的处理方法,感兴趣的朋友一起看看吧
    2024-11-11
  • 图解Java经典算法快速排序的原理与实现

    图解Java经典算法快速排序的原理与实现

    快速排序是基于二分的思想,对冒泡排序的一种改进。主要思想是确立一个基数,将小于基数的数放到基数左边,大于基数的数字放到基数的右边,然后在对这两部分进一步排序,从而实现对数组的排序
    2022-09-09

最新评论