• 位运算符 & | ~ ^ << >>


    # ### 位运算符  & | ~ ^ << >>
    var1 = 19
    var2 = 15
    # & 按位与
    """
    res = var1 & var2
    print(res)
    """
    '''
    000...10011
    000...01111
    000...00011
    '''
    
    # | 按位或
    res = var1 | var2
    '''
    000...10011
    000...01111
    000...11111
    '''
    print(res)
    
    
    # ^ 按位异或
    res = var1 ^ var2
    '''
    000...10011
    000...01111
    000...11100
    '''
    print(res)
    
    # << 左移  (左移  相当于乘以2的几次幂 n << m 相当于n乘2的m次幂)
    res = 5 << 1
    res = 5 << 3
    print(res)
    '''
    000...101
    000..1010
    '''
    
    # >> 右移 (右移  相当于除以2的几次幂 n >> m 相当于n除2的m次幂)
    res = 5 >> 1  # 5 // 2的1次幂 => 2
    res = 5 >> 2  # 5 // 2的2次幂 => 1
    res = 5 >> 3  # 5 // 2的3次幂 => 0
    print(res)
    '''
    000...101
    000....10  =>2
    000....01  =>1
    '''
    
    # ~ 按位非 (按位非 操作的二进制的补码, 对二进制的每一位进行取反,包括符号位)   公式:-(n+1)
    res = ~19
    print(res)
    '''
    000...10011  (补码)
    111...01100  (按位非)
    
    # 给补码求原码
    111...01100
    
    100...10011  (反码)
    100...10100  (原码 = 反码+1)
    十进制 => -20
    '''
    res= ~(-19)
    print(res)
    '''
    1000...10011  (原码)
    1111...01100  (反码)
    1111...01101  (补码)
    
    # 现在进行按位非
    0000...10010  
    因为高位都是0是正数
    原码 = 反码 = 补码
    0000...10010  (原码)
    '''
    
    """
    运算符的优先级:
    () 括号优先级最高
    ** 优先级其次
    =  优先级最低
    
    一元运算符:同一时间只操作一个数字的 (- , ~)
    二元运算符:同一时间能操作二个数字的 (+ , -...)
    ~19+5
    一般来说,一元运算符 大于 二元运算符的优先级
    
    + - * /       =>    * / 大于 + - 
    () not and or =>    not > and > or
    
    如果都是二元运算符:
    算术运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符 
    赋值运算符 作为最后等号右边的值算好后进行赋值.
    """
    res = 5+5 << 6 // 3 is 40 and True
    print(res)
    '''
    5+5 << 2 is 40 and True
    10 << 2 is 40 and True
    40 is 40 and True
    True and True
    True
    '''
    

      

  • 相关阅读:
    【读书笔记】iOS-照相机与摄像头
    【读书笔记】iOS-加速计与陀螺仪
    【读书笔记】iOS-手势识别
    【读书笔记】iOS-移动开发
    【读书笔记】iOS-配件
    iOS开发UI篇—核心动画(转场动画和组动画)
    iOS开发UI篇—核心动画(关键帧动画)
    iOS开发UI篇—核心动画(基础动画)
    iOS开发UI篇—核心动画简介
    iOS开发UI篇—CAlayer(自定义layer)
  • 原文地址:https://www.cnblogs.com/huangjiangyong/p/10788280.html
Copyright © 2020-2023  润新知