Python中的XOR异或符号^运用

Python中的XOR异或符号^运用^运算符为异或运算a=10b=100c=a^b#c=110为什么会得到这样的结果呢?bin(10)#’0b1010’bin(100)#’0b1100100’其实这里面经历了几次计算:1.计算a,b的二进制值:bin(10)#’0b1010’bin(100)#’0b1100100’2.^符号的作用是将两数字相…

大家好,又见面了,我是你们的朋友全栈君。

^运算符为异或运算

a = 10
b = 100
c = a^b # c = 110

为什么会得到这样的结果呢?

bin(10)    #'0b1010'

bin(100)   #'0b1100100'

其实这里面经历了几次计算:

1.计算a,b的二进制值:

bin(10)    #'0b1010'
bin(100)   #'0b1100100'

2.^符号的作用是将两数字相同位置但是数值不同的值变为1,即经过^计算获得字符串‘ob1101110’

3.随后将二进制的‘ob1101110’转化为十进制的值即为:110

以上就是^的计算过程。

 

目前个人总结的^在python中的作用主要是两个方面:

1.计算不重复的值(136. Single Number

可以对list中的值进行累计XOR运算,获得唯一值

class Solution:
    def singleNumber2(self, nums):
        r = 0
        for i in nums:
            print(i)
            r ^= i
        return r

2.计算汉明距离(461. Hamming Distance

class Solution(object):
    def hammingDistance(self, x, y):
        """
        :type x: int
        :type y: int
        :rtype: int
        """
        return bin(x^y).count('1')

这道题总觉得题设描述的不太清楚,建议看一下百度关于汉明距离的解释

对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。

 

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

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

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


相关推荐

  • 微机原理与接口技术电子版_微机原理与接口技术主要内容

    微机原理与接口技术电子版_微机原理与接口技术主要内容微型计算机原理接口与技术综述论文汇编微型计算机原理与接口技术课程综述内容摘要微型计算机原理与接口技术主要讲的是微型计算机的基本工作原理、系统的组成及接口技术和基本的汇编语言程序设计知识。本文主要对微机原理与接口技术的学习内容和应用做介绍。一、微型计算机原理与接口技术课程综述本课程共分十章。第一章介绍了微型计算机的整体概念;第二章讲述了80X86微处理器的结构、功能、总线操作时序和80X86微处理器…

    2022年9月26日
    1
  • 八路抢答器c语言程序,八路抢答器-51单片机(附Proteus仿真、C代码、原理图及PCB、论文和元器件清单)…

    八路抢答器c语言程序,八路抢答器-51单片机(附Proteus仿真、C代码、原理图及PCB、论文和元器件清单)…获取全套设计资源,请见后文说明…设计要求1)抢答器同时供8名选手或2个代表队比赛,分别用8个按钮S0-S7表示;2)设置一个系统清除和抢答控制开关S,该开关由主持人控制;3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止;4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30s等)。当主持人启动“开始”按键后,定时器进行减计…

    2022年10月20日
    0
  • [Java web]– spring3(2)「建议收藏」

    [Java web]– spring3(2)「建议收藏」1.复杂对象的创建:不能直接new的对象,需要一个相对复杂的创建过程。  :FactoryBean===============================================================================================2.复杂对象的创建流程:  2.1 定义类:implements FactoryBean&l…

    2022年9月7日
    0
  • 时间戳转 Date 字符串出现误差「建议收藏」

    时间戳转 Date 字符串出现误差「建议收藏」  1.问题描述:    前台一个日期选择组件,提交的数据格式为“1991-05-10”,后台使用SimpleDateFormat进行转换,获取到时间戳,存入数据库,数据库字段为bigint类型,保存后,日期回显,显示为“1991-05-09”,出现一天的误差,但不是所有日期都存在误差。  前台获取到时间戳,转换后调用toLocaleDateString回显数据。 …

    2022年6月16日
    51
  • java 高并发

    java 高并发

    2021年9月2日
    46
  • pycharm模板设置时间_pycharm编辑配置

    pycharm模板设置时间_pycharm编辑配置pycharm模板设置模板的作用过程模板的作用可以在新建文件时把预先设定好的内容添加到文件的开始位置。过程打开pycharm选择菜单中的file下的Settimgs3.选中FileandCodeTemplates4.我们这里设置PythonScript…

    2022年8月26日
    2

发表回复

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

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