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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 百度最新面试题集锦

    百度最新面试题集锦

    2021年12月14日
    56
  • django 自定义过滤器_adguard自定义过滤器

    django 自定义过滤器_adguard自定义过滤器前言虽然DTL给我们内置了许多好用的过滤器。但是有些时候还是不能满足我们的需求。因此Django给我们提供了一个接口,可以让我们自定义过滤器,实现自己的需求。自定义过滤器首先在某个app中,创建

    2022年7月31日
    5
  • metrics小常识

    metrics小常识Metrics,我们听到的太多了,熟悉大数据系统的不可能没听说过metrics,当我们需要为某个系统某个服务做监控、做统计,就需要用到Metrics。举个例子,一个图片压缩服务:每秒钟的请求数是多少(TPS)?平均每个请求处理的时间?请求处理的最长耗时?等待处理的请求队列长度?又或者一个缓存服务:缓存的命中率?平均查询缓存的时间?基本上每一个服务、应用都需要

    2025年7月10日
    5
  • 笑谈.Net的开发境界

    笑谈.Net的开发境界

    2021年7月25日
    69
  • TTL与RS232连接

    同为5伏电源电压时,CMOS与TTL基本上可以直接连接.但是要注意两点:1)TTL的输入低电平电流较大,而且是方向是向外流出的,输入高电平时输入电流较小.所以TTL的输出也考虑到这一点,输出低电平时可以”吸入”较大的负载电流.而CMOS的输出电路对高低电平是一样的.计算负载能力时,要注意这个差别.2)TTL的输入转换电平大约是1.4伏,而

    2022年4月7日
    41
  • linux rsyslog配置_syslog配置

    linux rsyslog配置_syslog配置在centos7中,默认的日志系统是rsyslog,它是一个类unix计算机系统上使用的开源工具,用于在ip网络中转发日志信息。rsyslog采用模块化设计,是syslog的替代品。rsyslog具有如下特点:实现了基本的syslog协议。直接兼容syslogd的syslog.conf配置文件在同一台机器上支持多个rsyslogd进程丰富的过滤功能,可将消息过滤后再转发灵活的配置选项,配置文件中可…

    2022年9月25日
    2

发表回复

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

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