java异或运算符_python 异或

java异或运算符_python 异或Java-异或运算异或运算法则异或的运算方法是一个二进制运算:例图:总结例题1例题2:136.只出现一次的数字(力扣)异或运算法则    1.a^b=b^a  2.a^b^c=a^(b^c)=(a^b)^c;  3.d=a^b^c        可以推出a=d^

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

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

异或运算法则

       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^1=0

0^0=0

1^0=1

0^1=1

两者相等为0,不等为1.

例图:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

1、异或是一个数学运算符。应用于逻辑运算。
2、真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值相异结果为真。
3、n^0=n n^n=0,即任何数与0进行异或,为它本身,两个相同的数进行异或运算,会得到0。

例题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。

例题2:136. 只出现一次的数字(力扣)

那么综合上面的所有知识点让我们投入实战:

  1. 只出现一次的数字
    题目链接:https://leetcode-cn.com/problems/single-number/
class Solution { 
   
     public int singleNumber(int[] nums) { 
   
         int ans=0;
        for(int i=0;i<nums.length;i++){ 
   
            ans^=nums[i];   //异或运算
        }
        return ans;
    }
}


持续更新中…

文章参考学习地址:
https://leetcode-cn.com/problems/single-number/solution/hua-jie-suan-fa-136-zhi-chu-xian-yi-ci-de-shu-zi-b/

文章参考学习地址:
https://blog.csdn.net/wohaqiyi/article/details/80931693/

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

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

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


相关推荐

  • 树莓派连接WiFi网络__2019.05.18

    树莓派连接WiFi网络__2019.05.18原文链接:http://sh.qihoo.com/pc/9ac657e0f6b386110?cota=4&tj_url=xz&sign=360_e39369d1&refer_scene=so_1工具/原料树莓派3代方法/步骤1:登录已经刷入系统的树莓派默认用户名pi密码raspberry方法/步骤2:登录系统以后我们使用ifconfig…

    2022年5月1日
    47
  • 集群软件的分类「建议收藏」

    集群软件的分类「建议收藏」集群软件的分类   在现在存储环境中,集群软件是一个很重要的模块。然而,很多人不清楚集群软件的分类,不知道oracle的RAC,IBM的HACMP,Symantec的VCS和EMC的AutoStart,甚至一些用户写的脚本,分别属于哪一类,它们之间有什么相同和不同的地方:   一般来讲,集群软件根据侧重的方向和试图解决的问题,分为三大类:高性能集群(Highperforma

    2022年10月16日
    2
  • navicat premium 15永久激活码(JetBrains全家桶)

    (navicat premium 15永久激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsaWNlbnNlSWQi…

    2022年3月21日
    577
  • Python之functools库

    functools库用于高阶函数,指那些作用于函数或者返回其他函数的函数functools提供方法如下:cmp_to_key将老式的比较函数转换为关键字函数,与接收keyfunction的函数

    2021年12月19日
    66
  • export命令什么意思_report函数

    export命令什么意思_report函数一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。    —-《UNIX教程》

    2022年9月6日
    3
  • uni开发app用什么调试方便_配置台式机后调试过程

    uni开发app用什么调试方便_配置台式机后调试过程uni-app项目配置平台配置HBuider建议下载下载好之后点击工具–>设置–>运行配置这个路径就是我们微信开发者工作的目录一般不需要我们自己填,只有运行不起来微信开发者工具时使用配置好这些就可以点击运行了(包括下面这个微信的端口号开启)微信小程序打开微信小程序点击设置->安全设置->保证服务器端口是开启的app真机、模拟器连接安卓设备—>首先确保我们电脑和手机通过数据线连接起来

    2025年9月19日
    4

发表回复

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

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