學習筆記(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

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