zoukankan      html  css  js  c++  java
  • Python位运算符>>和<<

    1 Python位运算符有如下几种

    &:按位与:两位都为1,结果为1,否则为0
    |:按位或:只要有一位为1,结果就为1
    ^:按位异或:两对应的二进位相异时,结果为1
    ~: 按位取反,即把1变为0,把0变为1,相当于(-x-1)
    <<:左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。
    >>:右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

    2 案例

    a = 60  # 二进制位 0011 1100
    b = 13  # 二进制位 0000 1101
    
    '''
    a&b        按位与:两位都为1,结果为1,否则为0
    a          0011 1100
    b          0000 1101
    二进制结果   0000 1100
    十进制结果   12
    '''
    print(a & b)
    
    
    '''
    a|b        按位或:只要有一位为1,结果就为1
    a          0011 1100
    b          0000 1101
    二进制结果   0011 1101
    十进制结果   61
    '''
    print(a | b)
    
    '''
    a^b        按位异或:两对应的二进位相异时,结果为1 
    a          0011 1100
    b          0000 1101
    二进制结果   0011 0001
    十进制结果   49
    '''
    print(a ^ b)
    
    '''
    ~a          按位取反,即把1变为0,把0变为1,相当于(-x-1)
    a           0011 1100
    ~a          1100 0011
    十进制结果    -61
    '''
    print(~a)
    
    '''
    << 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0
    a                0011 1100 
    a << 2           1111 0000
    十进制结果         240 
    '''
    print(a << 2)
    
    
    '''
    >> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
    a         0011 1100       
    a >> 2    0000 1111
    十进制结果   15 
    '''
    print(a >> 2)

    print(a>>3)
    7
    print(a>>4)  0000 0011 1100
    3
    print(a>>5)     0000 0001 1110 0
    1
    print(a>>6)   0000 0000 1111 00
    0


    作者:刘sir
    链接:https://zhuanlan.zhihu.com/p/370167569
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    9.堆排序
    8.全排列
    37.微信跳一跳辅助开发(C语言+EasyX)
    7.图形化实现快速排序法
    codeforces 632A A. Grandma Laura and Apples(暴力)
    codeforces 633D D. Fibonacci-ish(dfs+暴力+map)
    codeforces 633B B. A Trivial Problem(数论)
    codeforces 633A A. Ebony and Ivory(暴力)
    codeforces 622B B. The Time
    codeforces 622D D. Optimal Number Permutation(找规律)
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/15085617.html
Copyright © 2011-2022 走看看