Java中亦或运算符

最近遇到这样一道算法题:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

示例:
输入【2562569】
输出:9

当时毫无解决思路,对亦或运算毫无了解,经过多方资料查找进行总结
首先我们先了解下什么是亦或运算符
1、亦或运算符是一个数学运算符,应用于逻辑算法,符号:" ^ "
2、有好多小伙伴会被其名字迷惑,亦或是针对于变量在计算机组成的二进制来计算的
举个例子:假如用 a,b 代替2个变量(可以是数字也可以是任何字符)他们的值分别是5和8,他们的二进制编码分别是:
其中5的二进制为101
8的二进制为1000
亦或遵循规则:
相同为0:00=0;11=1
相异为1:10=1;01=1
0与任何数亦或为其本身
则5^8 二进制结果为1101(值为13)不会可以看看二进制的运算
由此可得:两个相同的数例如:6^6 由于他们在计算机中的二进制相同所以结果为0,0与任何数亦或得本身(例如:0 ^ 9得到9)
3、对于上面示例找9的题你是否有答案了
我们可以这样解题:我们把数字按照数学的逻辑交换位置(2^2) ^ (5 ^ 5) ^ (6 ^ 6) ^9 套公式进行技术得到 0 ^ 0 ^0 ^ 9 最后得到 9 本身
4、用程序实现

int[] numarry = new int[]{2,5,6,2,5,6,9};
int only = numarry[0];
for(int i = 1; i < 7; i++)
{
only = only ^ numarry[i];
}
System.out.println(“最后:”+only);

Java中亦或运算符相关推荐

  1. Java培训教程:Java中的位移运算符!

    学习Java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,通过系统学习学到Java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累. 今天小千给大家分享的 ...

  2. Java 中的位移运算符

    在源码中经常会看到一些位移运算符的使用,比如在看HashMap源码的时候,在计算hashMap容量的阈值的时候,就使用到了位移运算符,代码如下: java中有三种移位运算符 <<     ...

  3. java里面value_「Java基础知识」Java中包含哪些运算符

    原标题:「Java基础知识」Java中包含哪些运算符 在Java中包含的运算符有:算数运算符,逻辑运算符,关系运算符等. 算数运算符也就是我们平时的加减乘除余等操作:在Java中都是将右边的值赋值给左 ...

  4. java中的位移运算符_Java 位移运算符

    本人只是 Android小菜一个,写技术文档只是为了总结自己在最近学习到的知识,从来不敢为人师,如果里面有些不正确的地方请大家尽情指出,谢谢! 1.概述 Java 位移运算符是Java中基本的位运算操 ...

  5. java中的比较运算符_Java基础---Java中的比较运算符(十三)

    Java中的比较运算符 比较运算符用于判断两个数据的大小,例如:大于.等于.不等于.比较的结果是一个布尔值( true 或 false ). Java 中常用的比较运算符如下表所示: 注意哦: 1. ...

  6. java中的++与--运算符

    java中的++与–运算符 1.++自加 2.–自减 注意: (1)运算符出现在变量的左边,则先对变量进行加/减1,然后带入表达式进行计算 (2)运算符出现在变量的右边,则先将变量带入表达式中进行计算 ...

  7. java中的移位运算符与无符号位移

    引用: java中有三种移位运算符 java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2>> : 右移运算符,num >&g ...

  8. java中有三种移位运算符

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  9. java中的移位运算符

    移位运算符是在数字的二进制形式上进行平移.主要有左移(<<).带符号右移(>>)以及无符号右移(>>>). 左移运算符(<<)的运算规则为:按二进 ...

最新文章

  1. B站超全分享!2万人收藏的免费计算机科学速成课
  2. sed线上经典案例之-同时替换多个字符串
  3. SCons — 程序构建工具
  4. 内网访问不到内网网站问题和不用端口号访问网站问题
  5. Coding Interview Guide -- 向有序的环形单链表中插入新节点
  6. Eclipse使用技巧
  7. Windows Server 2016 Technical Preview 4 (x64) 简体中文版下载!
  8. ACM 学习笔记(四) 数据结构之树、二叉树、完全二叉树、二叉查找树、AVL树、红黑树、B树、B+树
  9. 20169302 2016-2017-2 《网络攻防实践》课程总结
  10. Atitit 获取一列拼接为字符串 逗号分隔 目录1.1. Sql Group_contackt,但是排序只能拍一个的。。如果多个列对应排序则不行。。。 11.2. Js 使用map函数 1
  11. ArcGIS及ENVI软件下载链接(持续更新...)
  12. java视频通话_Java使用WebSocket和WebRTC视频通话
  13. 项目经理必须知道什么是PERT网络分析(计划评审技术)
  14. spss 25 的pls安装
  15. diy服务器个人主机_DIY个人服务器
  16. 计算机技能名称英语,电脑技能英文表示法
  17. 基于single-spa+vue的前端微服务项目实践
  18. 2个月快速通过PMP证书的经验
  19. 基于Android9.0,了解启动流程
  20. 疫情下的商家痛点,如邻带你开创明天

热门文章

  1. mailgun php版本,如何使用mailgun php API仅向bcc发送邮件?
  2. Cisco(GNS3) - 路由器接口类型
  3. 安装计算机的显卡出现问题,电脑显卡驱动安装失败如何解决
  4. mac java 安装教程_MAC安装JDK详细教程
  5. 2022.10.27
  6. 文章标题 execution(* cn.sxt.dao.impl.*.*(..))解释
  7. 微信小程序普通二维码解析
  8. android电视无线同屏,手机连接电视同屏操作方法详解
  9. Scala进阶_函数式编程(过滤丶排序丶分组丶聚合)
  10. 面对ONF挑衅 思科用ACI回绝SDN挑战