码迷,mamicode.com
首页 > 其他好文 > 详细

位运算符和运算符优先级

时间:2019-04-13 13:48:32      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:div   赋值运算   异或   逻辑   优先级   计算   pre   var   color   

# ###(7)位运算符:    & | ~ ^ << >>
var1 = 19
var2 = 15
# & 按位与
res = var1 & var2
print(res)
‘‘‘
10011
01111
00011
‘‘‘
# | 按位或
res = var1 | var2
print(res)
‘‘‘
10011
01111
11111
‘‘‘


# << 左移
""" n<<m  n乘以2的m次幂  """
res = 5 << 2  # 相当于5 * 2的2次幂
"""
00000101
00010100
4+16 = 20
"""

# >> 右移
‘‘‘n>>m n除以2的m次幂‘‘‘
res = 5 >> 1
"""
00000101
00000010
"""
print(res)

# ^ 按位异或
"""两个值[不相同]方为真,两个值[相同]方为假"""
res = var1 ^ var2
‘‘‘
10011
01111
11100 
‘‘‘
print(res)
# ~ 按位非    - ( n+1 )
res = ~19
res = ~-21
print(res)


# 运算符的优先级
‘‘‘
一元运算符: 同一时间只操作一个数字运算的 ( ~ - ) ~19
二元运算符: 同一时间只操作两个数字运算的 (+ - * /) 5 + 3

整体一元运算符优先级 > 二元运算符
所有运算符当中 ** 幂运算优先级最高
所有运算符当中 = 赋值运算符优先级最低

单独的一种运算符优先级顺序如下:
乘 除 > 加 减
() > not > and > or
~ > (<< >>)> & > ^ > |

除此之外,剩下的运算符优先级如下:
算数运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
赋值运算符 单独拿出来作为最后,把值计算好之后再进行赋值
‘‘‘
res = 5+5 << 6 // 3 is 40 and True
print(res) # True
‘‘‘
5+5 << 2 is 40 and True
10 << 2 is 40 and True
40 is 40 and True
True and True => True 
‘‘‘
# 用一个小括号抱起来 作为一个整体,让别人能够看懂代码
res = (5+5) << (6 // 3) is 40 and True
print(res)

 

位运算符和运算符优先级

标签:div   赋值运算   异或   逻辑   优先级   计算   pre   var   color   

原文地址:https://www.cnblogs.com/eliwen/p/10700789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!