Python學習筆記

2021-10-20 19:35:20 字數 1311 閱讀 6979

python學習筆記

原碼、反碼和補碼

二進位制有三種不同的表示形式:原碼、反碼和補碼,計算機內部使用補碼來表示。

原碼:就是其二進位制表示(注意,有一位符號位)。

00 00 00 11 -> 3

10 00 00 11 -> -3

反碼:正數的反碼就是原碼,負數的反碼是符號位不變,其餘位取反(對應正數按位取反)。

00 00 00 11 -> 3

11 11 11 00 -> -3

補碼:正數的補碼就是原碼,負數的補碼是反碼+1。

00 00 00 11 -> 3

11 11 11 01 -> -3

符號位:最高位為符號位,0表示正數,1表示負數。在位運算中符號位也參與運算。

按位運算

按位非操作 ~

~ 1 = 0

~ 0 = 1

~ 把num的補碼中的 0 和 1 全部取反(0 變為 1,1 變為 0)有符號整數的符號位在 ~ 運算中同樣會取反。

11 11 10 10 -> -6

00 00 01 00 -> 4

按位與操作 &

1 & 1 = 1

1 & 0 = 0

0 & 1 = 0

0 & 0 = 0

只有兩個對應位都為 1 時才為 1

00 00 01 00 -> 4

按位或操作 |

1 | 1 = 1

1 | 0 = 1

0 | 1 = 1

0 | 0 = 0

只要兩個對應位中有乙個 1 時就為 1

00 00 01 11 -> 7

按位異或操作 ^

1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

只有兩個對應位不同時才為 1

00 00 00 11 -> 3

異或操作的性質:滿**換律和結合律

a: 00 00 11 00

b: 00 00 01 11

a^b: 00 00 10 11

b^a: 00 00 10 11

a^a: 00 00 00 00

a^0: 00 00 11 00

aba: = aab = b = 00 00 01 11

按位左移操作 <<

num << i 將num的二進位制表示向左移動i位所得的值。

01 01 10 00 -> 88

按位右移操作 >>

num >> i 將num的二進位制表示向右移動i位所得的值。

00 00 00 10 -> 2

python教學筆記 python學習筆記(一)

1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...

python學習筆記

coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...

Python 學習筆記

python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...