你还不知道Java异或运算符的妙用?

你还不知道Java异或运算符的妙用?异或(XOR)运算符当两个boolean类型的变量,locked^deleted,如果locked与deleted是不同的,返回true。如果两个操作数是相同的,则返回false。因此,当我们需要同时检查两个不成立的条件时,可以使用异或运算符号。假设我们有两个条件,A和B,下面显示了A^B的可能值:A^B操作等于(A&&!B)||(!A&&B)。在Java中使用接下来让我看一下Java中的异或操作,当然我们可以.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

异或(XOR)运算符

当两个boolean类型的变量,locked ^ deleted,如果locked与deleted是不同的,返回true。如果两个操作数是相同的,则返回false。

因此,当我们需要同时检查两个不成立的条件时,可以使用异或运算符号。

假设我们有两个条件,A和B,下面显示了A ^ B 的可能值:

你还不知道Java异或运算符的妙用?

 

A ^ B 操作等于 (A && !B) || (!A && B) 。

在Java中使用

接下来让我看一下Java中的异或操作,当然我们可以使用 && 和 || 运算符,虽然这看起来很啰嗦。正如我们看到的那样,想象一下,有个Account类,它具有两个boolean属性:locked和 expired。现在我们想知道这个账户是被冻结了,还是过期了,而不是两者都是。

你还不知道Java异或运算符的妙用?

 

这段代码是很常见的,并没有什么问题,只是有点长而且看起来不是很直观。这个时候我们就可以考虑使用异或运算符,即比较二进制中两个值匹配位以返回结果。如果二进制中相同位置的两位具有相同的值,就为0,否则为1。

因此,我们可以使用下面的代码来替代:

你还不知道Java异或运算符的妙用?

 

不出我们所料,^ 运算符与其他按位运算符一样,都适用于每种基本类型。例如两个整数1和2,它们的二进制表示分别为0000 0001和0000 0010,然后,在它们之间使用 ^ 运算,将得出整数3:

你还不知道Java异或运算符的妙用?

 

在这两个数字中,第一位和第二位都不同,因此 ^ 运算符的结果为1。所以其他位置相同,

因此它的最终结果为 0000 0011 – 二进制表示整数3。

更有趣的用法

上面展示了1 ^ 2 == 3,这里我们将介绍一种做菜单权限的有趣方法。

通常我们每个菜单都有四种权限,查看、增加、修改、删除,这个时候我们就可以使用1、2、4、8分别表示。代码如下:

你还不知道Java异或运算符的妙用?

 

结论

通过上面的例子我们了解了异或运算符。我们看到,它提供了一种更简介的方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188519.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 美股实时行情api接口(美股开户)

    所有美股历史交易行情数据,完整历史交易/任意时间段查询。1.产品功能支持所有历史美股交易查询;支持指定任意时间段查询;超高的查询效率,秒级返回;所有的交易数据为未复权的数据;全接口支持HTTPS(TLSv1.0/v1.1/v1.2/v1.3);全面兼容AppleATS;全国多节点CDN部署;接口极速响应,多台服务器构建API接口负载均衡。2.API文档接口地址:https://api.gugudata.com/stock/us返回格式:

    2022年4月11日
    135
  • java四舍五入取整算法(小数四舍五入取整公式)

    简介Math类中提供了5个与取整相关的函数,如下所示:staticdoubleceil(doublea):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)。staticdoublefloor(doublea):地板函数,返回小于等于a的最大整数(但是以浮点数形式存储)。staticdoublerint(doublea):四舍五入函数,返

    2022年4月16日
    377
  • aop实现原理面试_aop ioc 面试怎么回答

    aop实现原理面试_aop ioc 面试怎么回答作用——用于处理系统中分布的各个模块的横切关注点(如:事务管理、日志、缓存等),是使用动态代理实现,在内存中临时为增强某个方法生成一个AOP对象,该对象含有目标对象的所有方法,在特定的切入点做了增强处理,并回调原来的方法。P:咋眼一看,不能直接理解很正常。动态代理的实现——主要分两种方式实现1、JDK动态代理原理说明——JDK动态管理通过反射接收被代理的类,该代理的类必须实现接口,核心是InvocationHandler和Proxy类。2、Cglib动态代理原理说明——Cglib通过.

    2022年9月2日
    2
  • 6种不同画法画平行线_平行线的画法_中小学试题|家庭教育题库|辅导习题「中国戏曲学院附属中等戏曲学校」…

    6种不同画法画平行线_平行线的画法_中小学试题|家庭教育题库|辅导习题「中国戏曲学院附属中等戏曲学校」…平行线怎么画第五章《数学活动1》—-你有几种画平行线的方法【活动理念】通过让学生积极参与此次活动,获得成功的体验,感受活动课的乐趣.通过观察、操作、推理归纳,让学生进一步知道相交线、平行线以及垂线的概念,利用平行线的判定解决一些实际问题,利用平移可以绘制一些优美的图案等.【活动目标】一、知识与技能1、两直线平行的条件,掌握两种以上最快捷的画平行线的方法.2、进一步理解相交线、平行线以及垂线的概…

    2022年9月20日
    0
  • 武侠世界2-try catch思考

    以前一直不知道trycatch具体应用到什么地方,之前待过的几家公司也看不到有类似的代码。从网上搜来的,描述trycatch优点有下面几点。1、把错误处理和真正的工作分开来;  2、代码更易组织,更清晰,复杂的工作任务更容易实现;  3、毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了;  4、由于C++中的trycatch可以分层嵌套,所以它…

    2022年4月6日
    35
  • awk基本用法简介

    awk基本用法简介之前说过sed,今天来说awk,它也是一个文本处理器,是linux下的一个命令,比sed更强大。搞linux开发,尤其是后台开发,这个命令几乎必须要用到。awk这三个字母分别代表其三位作者的名字,而不是某个/某些有意义单词的缩写。还是那句话,以实践操作为荣,以只看不练为耻。当然,理解awk的原理是必须的:读入有’\n’换行符分割的一条记录,将记录按指定的域分隔符划分域,$0表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是空格键或tab键。

    2022年7月11日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号