java中异或运算的应用

article/2025/10/6 8:42:39

java中异或运算(^)的应用

异或运算法则

  1. a ^ b = b ^ a
  2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
  3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.
  4. a ^ b ^ a = b.

异或运算

  1、异或是一个数学运算符。应用于逻辑运算。
  2、例如:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值相 异结果为真。
  异或的运算方法是一个二进制运算:
  1^1=0
  0^0=0
  1^0=1
  0^1=1
  两者相等为0,不等为1.
总之,就是这样,n^0=n n^n=0,即任何数与0进行异或,为它本身,两个相同的数进行异或运算,会得到0。
 
  前几天看到一个这样的题目,对于一个有多个数值的数组,只有一个是唯一的,其他都是成对的,怎样快速找到这个唯一值。在我没听过异或运算的时候,真是一脸懵,但是后来在看hashMap源码的时候看到了^ 异或运算符,搜了一下,才发现曾经看到的这道题的解题,顿时豁然开朗。

        int[] numarry = new int[]{1,2,3,2,3};int aim = numarry[0];for(int i = 1; i < 5; i++){aim = aim ^ numarry[i];}System.out.println("最后:"+aim);

  关于上边的这个结果是什么,你只需要知道异或运算的特点就可以了,比如1,2,3,2,3 ,既然异或运算满足上边的交换规则,对于1^2^3^2^3 这样的异或运算,我们换一下位置(2^2)^(3^3)^1 ,通过两个相同的数进行异或运算得到0 ,那最终就会是0^0^1 ,最后会得到1
  另外,还看到一个差不多的题,如下:
  1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?
上边这个也可以用异或运算进行解题:
假设:1^2^3......^n.....^1000=T
而: 1^2^3......^n^n.....^1000 = T^n
我们已经知道T^T^n = 0^n = n这样的过程。
所以,我们对于上边的解题办法就有了:
首先对1到1000,这1000个数进行异或运算,然后再把上边的1001个数进行疑惑运算,最后,再对这两个结果进行异或运算,就会得到唯一的那个n。
这里写图片描述


http://chatgpt.dhexx.cn/article/SeU31ggB.shtml

相关文章

java的异或运算

一、题目 输入两个数&#xff0c;交换后输出 二、解题思路 一开始学习的语言是c语言&#xff0c;里面非常有特色的是指针&#xff0c;通过传引用可以直接交换两个数。但java无法达成这种操作&#xff0c;翻阅资料找到了一种有趣的解法&#xff1a;异或! 异或原理&#xff1a; …

java基础-异或运算

小伙伴们&#xff0c;你们好呀&#xff01;我是老寇&#xff01; 异或运算主要用于判断两个值是否一样 异或运算的3个性质&#xff1a; 1.任何数和0进行异或运算&#xff0c;结果是原来的数&#xff0c;即b⊕0b 2.任何数和其自身进行异或运算&#xff0c;结果为0&#xff0c;即…

Java中的异或运算符^

Testpublic void test2() {int a2;int b3;aa^b;ba^b;aa^b;System.out.println("a"a",b"b);}第一种&#xff1a;用真实值计算 ^是异或运算符&#xff0c;异或的规则是转换成二进制比较&#xff0c;相同为0&#xff0c;不同为1. 一个数a与另一个数b异或的结果…

java中的异或运算

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是Rockey&#xff0c;不知名企业的不知名Java开发工程师 &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;联系方式&#xff1a;he18339193956&…

HTTP Status 505 – HTTP Version Not Supported

这个大部分的原因不是httpserver不支持&#xff0c;而是请求url里有空格&#xff0c;检查有空格UTF-8编码再传 比如&#xff1a;远程调用服务端地址有空格 去除空格

HTTP Status 500 解决办法

HTTP Status 500 解决办法 在Java web 论坛系统中也遇见了这个问题&#xff0c;在这里就提供一个解决的办法。 图中显示 int idInteger.parseInt(request.getParameter("id")); 这一段有错误。这里是因为id的值不能为null&#xff0c;不然就会出现这个错误 修改如…

Tomcat HTTP Status 404 tomcat 404问题解决

今天初次使用tomcat的时候&#xff0c;用浏览器访问总是不成功。经过一番周折总算成功了&#xff0c;虽然这个知识点不是很难&#xff0c;但还是写篇博客&#xff0c;希望能帮助那些初学者。(注&#xff1a;笔者用的是&#xff1a;tomcat 7) 前提&#xff1a;你的tomcat可以访…

svn提交报错Unexpected HTTP status 413 'Request Entity Too Large' on

问题原因&#xff1a;nginx的client_max_body_size设置过小&#xff0c;默认 1M&#xff0c;如果请求的正文数据大于client_max_body_size&#xff0c;HTTP协议会报错 413 Request Entity Too Large。 解决方案&#xff1a;把这个值调大就可以了。

HTTP Status 404 - 解决办法

HTTP Status 404 - 解决办法 今天&#xff0c;我在从仓库导入web项目的时候出现了一个问题&#xff1a; 首先&#xff0c;我想的是为什么会出现&#xff0c;这样的问题&#xff0c;然后我对这个问题进行了描述&#xff0c;准备在网上找找解决方法&#xff0c;大多数给出的答案…

HTTP Status 500 – Internal Server Error

第一次碰到500错误,标题很明显,内部服务器错误,解决此类问题重点在于会看错误提示信息,之前一直没有这个意识,看到报错直接百度,其实我们稍微注意一下信息提示就能解决大部分问题,上图: 看下第二条Message,标注了/iframe/head.jsp页面,后边括号表明为第一行第二列(个…

HTTP Status 400的排错步骤 与HTTP Status 404的排错步骤

一、前言&#xff1a;一个问题有暗含两个错误&#xff1a;400和404 二、HTTP Status 400 这是在跳转修改的界面出现&#xff0c;跳不过去说明路径相关有问题 上面 400的解决了&#xff0c;然后运行404又出来了 三、HTTP Status 404 看到资源问题&#xff0c;就去看下导包没有&a…

SpringBoot 设置HTTP 响应状态码 (HTTP Status Code)

SpringBoot 设置HTTP 响应状态码 (HTTP Status Code) HTTP请求响应的内容有很多&#xff0c;包括Body、Cookies、Headers和Status。 我们最常用的是Body、其次Headers、Cookies。而HTTP Status Code关注得最少。 HTTP Status Code 分类分类描述1**信息&#xff0c;服务器收…

HTTP Status 500 - null

出现这类问题&#xff1a;The server encountered an internal error that prevented it from fulfilling this request. java.lang.Integer.parseInt(Integer.java:542) HTTP Status 500 - null 500错误是首先考虑java代码的问题&#xff0c;如果不是java代码的问题的话&#…

Http Status 500

这个错误一般都是空指针异常 错误信息页面一般都提示了错误的页面和行数 我的SearchCondition java:25是这样的 我的name值是空的&#xff0c;然后后面用到了name,所以报了空指针异常&#xff1b; 像大型的项目&#xff0c;可以采取以下的措施&#xff1a; 一、通过System.…

HTTP Status 500 - Internal Server Error

Http请求状态码 200&#xff1a;正常404&#xff1a;资源找不到400&#xff1a;请求类型不匹配500&#xff1a;后台程序抛出异常游览器抛出的异常其实跟最基础的JAVA程序抛出异常是相似的只是异常提醒出现的位置不同&#xff0c;外加给了异常类型的数字&#xff08;200&#xf…

HTTP Status Codes/HTTP状态码

1.应用场景 帮助快速查询http code, 以及对应的含义&#xff0c;帮助定位问题。 2.学习/操作 推荐查阅 HTTP Status Codes Glossary - WebFX STATUS_CODES { 100: Continue, // 持续中 101: Switching Protocols, // 转换协议 102: Processing, // 进行中 200: OK, …

华为eNSP下的ssh配置实验

配置两台路由器&#xff08;AR4为服务器&#xff0c;AR3为SSH客户端&#xff09; 修改R3为AR3&#xff0c;修改R4为AR4&#xff0c;AR3地址192.168.1.1&#xff0c;AR4地址为192.168.1.2 发现能互通 配置aaa模式用户名加密码 设置权限等级 创立RSA的ssh秘钥 只允许ssh进…

WSL中的SSH配置方法

本地主机win11系统&#xff0c;wsl2:Ubuntu 20.04.4 LTS 1&#xff0c;更新linux $ sudo apt-get update lili:~$ sudo apt-get update [sudo] password for li: Ign:1 http://mirrors.ustc.edu.cn/ubuntu precise-updates InRelease Ign:2 http://mirrors.ustc.edu.cn/ubu…

ssh配置文件和ssh命令

ssh&#xff1a;发送数据&#xff0c;并对数据进行加密。默认端口22 &#xff0c;Secure Shell ssh远程管理登录命令 ssh rootIP 以root用户登录IP这台主机实验中&#xff0c;通过虚拟机中的centos7(作为客户端)去远程登录阿里云管理的主机(作为服务器端),因为ssh是利…

Mac中git ssh配置

一、查看是否已配置 1.cd &#xff5e;/.ssh ->进入ssh目录 如果不能进入该目录&#xff0c;说明没生成过&#xff0c;则需要使用命令2检查配置 2. git config --list ->检查下是否配置过git账户 3. ls ->查看ssh具体内容 如果ssh文件夹中有id_rs…