• python运算符: ^ <<


    ^表示二进制异或运算

    如下表(相同为0,不同为1),显然异或运算作为一种逻辑运算,有对称性(a^b=b^a):

     从左至右进行比对,不足为则用0补缺:

    对于 ^ 两边的数字都是正数则直接对比计算即可

    例如:

    7 ^ 10
    二进制:0111 ^ 1010
    输出为:1101=13

    9 ^ 8
    二进制:1001^1000
    输出为:0001即为1

    若一边或两边出现负数,则需要进行负数的转码

    转码原理:负数原码与补码之间相互转换

    例:

    -1 ^ -32

    -1    二进制为 -1

    而-1在计算机中被这样转换

    原码:1000 0001

    反码:1111 1110

    补码:1111 1111

    -32  二进制为 -100000

    而-1在计算机中被这样转换

    原码:1010 0000

    反码:1101 1111

    补码:1110 0000

    -1  ^  -32  =>  31
    # 1111 1111 ^ 1110 0000 =>  00011111  =>31

    << 左移动运算符:

    运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0;

    -1 << 5  => -100000
    #-100000 = -32

    另还有>>右移动运算符,原理一致

    其他运算符

    a = 0011 1100
    
    b = 0000 1101
    
    -----------------
    
    a&b = 0000 1100
    
    a|b = 0011 1101
    
    a^b = 0011 0001
    
    ~a  = 1100 0011

  • 相关阅读:
    实战演练:通过伪列、虚拟列实现SQL优化
    python try else
    Prince2是怎么考试的?
    Prince2是怎么考试的?
    Prince2是怎么考试的?
    Prince2是怎么考试的?
    拦截器
    拦截器
    拦截器
    拦截器
  • 原文地址:https://www.cnblogs.com/sewen-H/p/13557154.html
Copyright © 2020-2023  润新知