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 ...