位运算符 & | ~ ^ << >>
# ### 位运算符 & | ~ ^ << >>
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
'''
随机推荐
- LVS前奏-ARP知识回顾
什么是ARP协议: ARP协议,全称“Address Resolution Protocol”(地址解析协议),使用ARP协议,可以实现将IP地址解析成对应主机的物理地址(MAC地址) 为了能够正确的 ...
- springboot集成mybatis源码分析(一)
本篇文章只是简单接受使用,具体源码解析请看后续文章 1.新建springboot项目,并导入mybatis的pom配置 配置数据库驱动和mybatis dependency <dependenc ...
- 一起学爬虫——使用xpath库爬取猫眼电影国内票房榜
之前分享了一篇使用requests库爬取豆瓣电影250的文章,今天继续分享使用xpath爬取猫眼电影热播口碑榜 XPATH语法 XPATH(XML Path Language)是一门用于从XML文件中 ...
- 20172328 2018-2019《Java软件结构与数据结构》第三周学习总结
20172328 2018-2019<Java软件结构与数据结构>第三周学习总结 概述 Generalization 本周学习了第五章:队列.主要内容包含队列的处理过程.如何用对例如求解问 ...
- BZOJ-9-3295: [Cqoi2011]动态逆序对
题意:N个数的排列,M次操作,每次求当前的逆序对数量并删掉一个数 思路 :动态说的很到位.hiahia ... 最初一直没想明白为什么 大佬的cdq 中统计了两次. 先定义 给出的删除的点的 t 值依 ...
- Windows 7 下使用 pandoc 转换文档格式
工作中我们经常需要面对各种各样的文档格式,文档格式转换也就在所难免.通常有些文档编辑工具会提供自带的格式转换功能,但可转换格式比较有限.pandoc 正好可以解决这个问题,几乎你能见到的所有文档格式都 ...
- 2019-2-21.NET中异常类(Exception)
.NET中异常类(Exception) 异常:程序在运行期间发生的错误.异常对象就是封装这些错误的对象. try{}catch{}是非常重要的,捕获try程序块中所有发生的异常,如果没有捕获异常的话, ...
- 移除K位数字
1.题目来源:选自LeetCode 402: 2.问题描述: 3.问题分析 通过分析我们可以得出这样的结论:如果后一个数字比前面的数字小的话,那么我们就要把前面的一个数字删除掉,并且每次把字符串中拆出 ...
- 【树状数组】区间出现偶数次数的异或和(区间不同数的异或和)@ codeforce 703 D
[树状数组]区间出现偶数次数的异或和(区间不同数的异或和)@ codeforce 703 D PROBLEM 题目描述 初始给定n个卡片拍成一排,其中第i个卡片上的数为x[i]. 有q个询问,每次询问 ...
- 三类设计模式UML图
http://design-patterns.readthedocs.org/zh_CN/latest/index.html