# ### 位运算符  & | ~ ^ << >>
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
'''

  

随机推荐

  1. 将日志备份推送到s3存储上

    1.将日志备份推送到s3存储上 #!/bin/sh # 此脚本实现将/usr/local/netqin/boss/netqin/logs/BOSS_ContentServer/BOSS_AD_SDK ...

  2. Web微信模拟

    一.概要 目的:实现一个具有web微信类似功能的项目 框架:Django 模块:render.HttpResponse.BeautifulSoup.re.time.requests.json.rand ...

  3. Java桥接模式

    定义:将抽象部分与它的具体实现部分分离,使他们都可以独立的变化 通过组合的方式建立两个类之间联系,而不是继承 类型:结构型 适用场景: 抽象和具体实现之间增加更多的灵活性 一个类存在两个(或多个)独立 ...

  4. Cordova IOT Lesson003

    bot index.html <!DOCTYPE html> <html> <head> <title>Arduino蓝牙机械昆虫控制器</tit ...

  5. Cordova IOT Lesson002

    hello index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...

  6. net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-1项目说明

    https://www.bug2048.com/netcore20180313/ 最近公司的一个小项目尝试使用 .net core作为服务端进行开发,并顺利上线运行了一段时间,整体效果还是比较满意的. ...

  7. echarts移动端中例子总结。

    接下来我总结一下我常用到的几个移动端echarts小例子: 第一步:我先引入自己想要的库 第二步: 给echarts给了一个窗口(有大小的窗口) 第三步: 开始引入你想要的图形的options 我做的 ...

  8. Spark安装部署| 运行模式

    Spark 一种基于内存的快速.通用.可扩展的大数据分析引擎: 内置模块: Spark Core(封装了rdd.任务调度.内存管理.错误恢复.与存储系统交互): Spark SQL(处理结构化数据). ...

  9. sql语句表连接删除

    DELETE 表1,表2FROM 表1 LEFT JOIN 表2 ON 表1.id=表2.id WHERE 表1.id=需要删除的ID

  10. Linux 添加到环境变量

    在Linux下使用源码安装软件的时候,通常只能在软件安装目录下使用该软件命令,这样太麻烦,我们希望全局使用,可以将软件安装路径添加到系统环境变量里. 添加环境变量有2种方法: 1. 使用export命 ...