博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础-位运算符Bitwise Operators
阅读量:5914 次
发布时间:2019-06-19

本文共 3211 字,大约阅读时间需要 10 分钟。

              Java基础-位运算符Bitwise Operators

                                作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.位运算特点

  位运算符分为按位与(&),按位或(|),按位异或(^),按位取反(~)。

  位运算存在以下特点:

      1>.如果&|^两侧为布尔值,就是逻辑操作

        如果两侧为整数就是按位操作

      2>.位运算就是对整数的二进制位进行运算

        a>.1 & 1  == 1 

        b>.0  |  0  ==  0

        c>.1 ^ 1  == 1 

        d>.1 ^ 1  == 1  

        e>.~1   ==  0

        f>.~0   ==  1

 

二.案例展示

 1.用法展示

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class bitwise{ 8     public static void main(String[] args){ 9         int a = 10;10         int b = 20;11         int c = a & b;12         System.out.println("c==" + c);            //c == 013         /**14             a变量的值10,它对应的二进制形式为:15             00000000 00000000 00000000 0000101016             a变量的值20,它对应的二进制形式为:17             00000000 00000000 00000000 0001010018     按位与&19     --------------------------------------------20             00000000 00000000 00000000 0000000021         */22         23         24         c = a | b;25         /**26             a变量的值10,它对应的二进制形式为:27             00000000 00000000 00000000 0000101028             a变量的值20,它对应的二进制形式为:29             00000000 00000000 00000000 0001010030     按位或|31     --------------------------------------------32             00000000 00000000 00000000 0001111033         */34         System.out.println("c==" + c);            //c == 3035         36         c = a ^ b;37         /**38             a变量的值10,它对应的二进制形式为:39             00000000 00000000 00000000 0000101040             a变量的值20,它对应的二进制形式为:41             00000000 00000000 00000000 0001010042     按位异或^43     --------------------------------------------44             00000000 00000000 00000000 0001111045         */46         System.out.println("c==" + c);            //c == 3047         48         49         c = ~a;50         /**51             a变量的值10,它对应的二进制形式为:52             00000000 00000000 00000000 0000101053     按位取反(~)54     --------------------------------------------55             11111111 11111111 11111111 1111010156         */57         System.out.println("c==" + c);            c == -1158         59         60     }61 }

2.面试题来袭

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class bitwise{ 8     public static void main(String[] args){ 9         //如果实现两个数的原地交换,不借助与第三个变量,实现两个数的交换10         int x = 10;11         int y = 20;12         13         //方案一:14         x = x + y;        //x = 3015         y = x - y;        //y = 1016         x = x - y;        //x = 2017         System.out.println("x== " + x + ",y== " + y);18         19         20         //方法二:21         x = 10;22         y = 20;23         x = x ^ y;        //x == 3024         y = x ^ y;        //y == 1025         x = x ^ y;        //x == 2026         System.out.println("x== " + x + ",y== " + y);27         28         29         //实际应用中,实现两个数的交换,建议使用以下方法,方便其它程序员可以读懂30         x = 10;31         y = 20;32         int temp = x ;33         x = y;34         y = temp;35         36         System.out.println("x== " + x + ",y== " + y);37         38     }39 }

 

你可能感兴趣的文章
Agora iOS SDK-快速入门
查看>>
python-url显示方法
查看>>
响应式开发网站
查看>>
细说JS数组
查看>>
Adaptive Execution让Spark SQL更高效更好用
查看>>
W3C官方推荐使用新发布的HTML5.2
查看>>
如何应对大促?看京东核心中间件团队的高可用实践指南
查看>>
C# 7.1、7.2特性追踪
查看>>
苏宁的Node.js实践:不低于Java的渲染性能、安全稳定迭代快
查看>>
Jenkins将致力于提升稳定性、易用性和云原生兼容性
查看>>
从零开始用Python实现k近邻算法(附代码、数据集)
查看>>
Spring注解@Primary的意思
查看>>
行业看点 | 军事专家:量子技术将引起战争基因突变,颠覆未来战争形态
查看>>
Intel和ARM中国市场的芯片之战一触即发
查看>>
青云QingCloud上海1区正式商用:四大升级 连接未来
查看>>
抓住售后服务 抓住新的收入流
查看>>
【工业串口和网络软件通讯平台(SuperIO)教程】六.二次开发导出数据驱动
查看>>
通过maven-war-plugin插件对war包分环境打包
查看>>
python list排序
查看>>
浅谈mysql主从复制高可用
查看>>