• 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
    
  • 相关阅读:
    windows系统切换jdk,修改java_home无效情况
    Cannot instantiate interface org.springframework.context.ApplicationListener
    MySQL分组查询获取每个学生前n条分数记录(分组查询前n条记录)
    ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
    EF TO MYSQL 无法查询中文的解决方法
    HttpWebRequest post请求获取webservice void数据信息
    This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分 解决方案
    MySQL 5.7.13解压版安装记录 mysql无法启动教程
    C# udpclient 发送数据断网后自动连接的方法
    汽车XX网站秒杀抢购代码
  • 原文地址:https://www.cnblogs.com/King-Penguin/p/12082690.html
Copyright © 2020-2023  润新知