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

本文共 3266 字,大约阅读时间需要 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 }

 

转载于:https://www.cnblogs.com/yinzhengjie/p/8689059.html

你可能感兴趣的文章
2017 3月15日 上午
查看>>
基于神念TGAM的脑波小车(1)
查看>>
ceph集群搭建Jewel版本
查看>>
HttpClient 解释
查看>>
111111
查看>>
在Button上面显示图片,去掉Button的默认样式
查看>>
区域生长算法
查看>>
(转)json+flexgrid+jbox组合运用页面刷新<jsp>
查看>>
hive学习2(Navicat连接hive)
查看>>
getResourceAsStream的3种路径配置
查看>>
switch语句小练习
查看>>
组合逻辑电路
查看>>
POP-一个点击带有放大还原的动画效果
查看>>
9款极具创意的HTML5/CSS3进度条动画
查看>>
uboot在s3c2440上的移植(1)
查看>>
安装webpack
查看>>
Python 抓取网页乱码问题 以及EXCEL乱码
查看>>
https连接加载http资源
查看>>
个人阅读作业2
查看>>
UE4材质是什么样的机制
查看>>