学习笔记(02):2019Python全套视频教程-位移运算

立即学习:https://edu.csdn.net/course/play/26099/322894?utm_source=blogtoedu

'''
位运算
&(与)  |(或)  ~(非) ^(异或) >>(右移)  <<(左移)
'''

a = 2
b = 3
'''
0 为假  1为真
与:同时为真值为真  一个为假值为假
 0000 0010
&
 0000 0011
----------
 000000010
'''

print(a & b)  # 结果 2

'''
或:同时为假值为假  一个为真值为真
 0000 0010
|
 0000 0011
----------
 0000 0011
'''

print(a | b)  # 结果 3

'''
0000 0010
取反
1111 1101
转十进制:
步骤如下:
符号位为1 负数  减1
1111 1100 
取反
0000 0011
转十进制
3
负数
-3

'''

print(~a)  # 结果-3

'''
异或:相同为0  不同为1

 0000 0010
^
 0000 0011
----------
 0000 0001
'''
print(a ^ b)  # 结果1

'''
右移:变小   

数值//2的右移位数次方

例如

56 >> 3  值为 56//2的3次方(56整除2的三次方
 
'''
print(a >> 1)  # 结果 1
'''
#临界值
0>>n位  仍然为0
-1 >> n位 仍然为-1

'''

print("0右移n位:" + str(0 >> 5000))
print("-1右移n位:" + str(-1 >> 255))

'''
左移:数值变大
数值*2的位移次方
'''

print(a << 5)  # 结果 8

'''
#临界值
0<<n位  仍然为0

'''

print("0左移n位:" + str(0 << 5000)) # 结果 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章