zoukankan      html  css  js  c++  java
  • 4.Python 进制和位运算

     

    一、二进制转换

    In [1]:
    a = 3
    print(bin(a))   #bin()转换为二进制
    
     
    0b11
    
    In [2]:
    b = 0b10
    print(int(b))  #int()转换为十进制
    
     
    2
    
     

    负数的二进制

    求-5的二进制表示

    step1:先求正数的二进制。5->0000 0101

    step2:取反。 1111 1010

    step3:反码加1。 1111 1011

     

    二、位运算

    与:  &
    或:  |
    非:  !
    异或:^
    左移:<<
    右移:>>
    In [3]:
    print(3 & 2)  # 0000 0011 & 0000 0010 = 0000 0010
    
     
    2
    
    In [4]:
    print(5 | 3) # 0000 0101 | 0000 0011 = 0000 0111
    
     
    7
    
    In [5]:
    print(~5)   # ~0000 0101 = 1111 1010  看第一位符号位,为1是负数。取反:0000 0101 加1:0000 0110
    
     
    -6
    
    In [6]:
    print(~10)  # ~0000 1010 = 1111 0101                             取反:0000 1010 加1:0000 1011
    
     
    -11
    
    In [7]:
    print(~3)   # ~0000 0011 = 1111 1100                             取反:0000 0011 加1:0000 0100
    
     
    -4
    
    In [8]:
    print(3^5) # 0000 0011 ^ 0000 0101 = 0000 0110
    
     
    6
    
     

    左移n位相当于乘以2的n次方

    In [9]:
    print(2<<1) # 0000 0010 << 1 = 0000 0100   
    
     
    4
    
     

    右移n位相当于除以2的n次方

    In [10]:
    print(2>>1) # 0000 0010 >> 1 = 0000 0001 
    
     
    1
    
  • 相关阅读:
    [Unity3D]计时器/Timer
    unity缓存和浏览器缓存
    unity3d进行脚本资源打包加载
    Unity3d删除无用的美术资源
    项目经理的职责(转载)
    LINQ
    生意经
    Android ListView标题置顶效果实现
    ListView的自动循环滚动显示
    郭霖的专栏
  • 原文地址:https://www.cnblogs.com/King-Penguin/p/12082690.html
Copyright © 2011-2022 走看看