java利用异或运算的性质,对几个字符_java位运算符详解

java利用异或运算的性质,对几个字符_java位运算符详解原标题:干货:Java异或运算符的使用方法做Java这么久,还真的从来没有用到过某些基础的Java知识。今天就遇到了一个:Java的异或运算^,这个小不点“^”就是Java的异或运算符,是不是有点小,再来个大点的看得清楚:真^假=真  假^真=真  假^假=假  真^真=假这四个是在网上copy的例子,但它却是说明了Java异或运算的基本法则,那就是:只要两个条件同时为真或假,其结果都为假(这里要…

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

Jetbrains全系列IDE稳定放心使用

原标题:干货:Java异或运算符的使用方法

做Java这么久,还真的从来没有用到过某些基础的Java知识。今天就遇到了一个:Java的异或运算^,这个小不点“^”就是Java的异或运算符,是不是有点小,再来个大点的看得清楚:

真^假=真  假^真=真  假^假=假  真^真=假

这四个是在网上copy的例子,但它却是说明了Java异或运算的基本法则,那就是:只要两个条件同时为真或假,其结果都为假(这里要注意区别Java的与运算—其为真真为真,假假为假);但仅当两条件中一个为真,另一个为假时,结果为真(感觉有点叛逆哦?不合常理,不走寻常路)。但Java的异或运算还有一个前提那就是它都是以二进制数据为基础进行的运算。也就是说当我们在使用代码中使用到异或运算时,它都会先将两个条件进行转换,转换成二进制数据后,再进行运算,例如:

int a = 4^6;这里的4和6 都是int型数据,在进行运算时,4对应的二进制数为:100(0100);6对应的是:110(0110),这样实际的运算方程是:int a = 0100^0110;此时再来看:00=0;11=0;01=1;00=0;这样运算的结果就是:0010(这是二进制的数据),对应转换成十进制就是2.

ebd1ab491757401f85f667562cc34e76.png

这就是Java里面对于异或运算的内部运算机制。

下面看一个例子:

public class TestXOR{

public static void main(String[] args)

{

int i = 15, j = 2;

System.out.println(“i ^ j = ” + (i ^ j));

}

}

运行结果是:i ^ j = 13.

分析上面程序,i=15转成二进制是1111,j=2转成二进制是0010,根据异或的运算规则得到的是1101,转成十进制就是13.

利用这个规则我们可以灵活运用到某些算法。比如,假定有2K+1个数,其中有2k个相同,需要找出不相同的那个数,比如:2、3、4、4、3、5、6、6、5。我们利用异或运算符就可以这样写:

public class TestXOR{

public static void main(String[] args)

{

int[] array = {2,3,4,4,3,5,6,6,5};

int v = 0;

for (int i = 0;i < array.length;i++) {

v ^= array[i];

}

System.out.println(“只出现一次的数是:” + v);

}

}

结果是:只出现一次的数是2.

我们就是巧用异或运算符的规则,得出一个数和0异或还是自己,一个数和自己异或是0的原理。返回搜狐,查看更多

责任编辑:

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185936.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 目前主流的nosql数据库有哪些_显示器主流评测

    目前主流的nosql数据库有哪些_显示器主流评测oSQL是伴随着web2.0的迅猛发展而在2009年被提出的一个概念,一般可以通俗的理解为高性能的KeyValue存储结构的数据库,当然也有其他更广泛的类型。它基于CAP和BASE理论,强调最终一致性,具有数据结构灵活、扩展方便、大数据量下读写性能高效等特点,在互联网行业被广泛采用。本系列文章将评测广受关注的几个NoSQL数据库产品。本文关注的是HandlerSocketPlugi…

  • java 104规约_电网104规约解包(java)「建议收藏」

    java 104规约_电网104规约解包(java)「建议收藏」【实例简介】电网104规约解包java代码项目是围绕电网规约101规约(DL/T634.5101-2002)和104规约(DL/T634.5104-2009),项目基于Java语言。可以完成规约的内容解析工作和组装工作。可用于实际场景的把发送报文的生成等工作。【文件目录】101_104规约解析├──LICENSE├──README.md├──docs│├──附件1:广东电网配网自动…

  • Protostuff使用示例

    Protostuff使用示例Protostuff使用示例1、引入Maven依赖的JAR包&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;io.protostuff&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;protostuff-core&amp;lt;/artifactId&amp;gt;

  • PLC编程从入门到精通视频教程【副业学习会】

    PLC编程从入门到精通视频教程【副业学习会】PLC编程视频教程共73课,从入门到精通。从基础讲起,一步步提高PLC编程技巧。本套教程分为:电工基础教程、PLC入门教程、PLC高级教程、PLC经验与技巧、触摸屏(人机)编程教学。此视频通俗易懂,而且很实用。![在这里插入图片描述](https://img-blog.csdnimg.cn/20210715203622364.png)课程目录:第1章电工基础教程01电工基础的简介.mp402工厂用电.mp403看懂基本电路.mp404自锁、正反转电路.m…

  • Zeppelin原理简介

    Zeppelin原理简介sparkZeppelin原理

  • SpiderMonkey-让你的C++程序支持JavaScript脚本

    SpiderMonkey-让你的C++程序支持JavaScript脚本

发表回复

您的电子邮箱地址不会被公开。

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