上篇文章中已經介紹了python中的一些常見的運算子的操作,今天介紹上次遺留的一個運算子:位運算子,在學習位運算子之前,需要先了解一下二進制的相關概念,
二進制
在計算機中,只會識別0和1的二進制資料,位運算子就是把數值都當做二進制來進行計算,
要想了解位運算子,首先要了解一下二進制的基本概念和與其他進制之間的轉換關系,
在二進制表示的數值里面,只會有0和1的數字出現,那么我們現在看一下二進制數10001111轉換為十進制數是怎么轉換的呢?
10001111 = 1*2^7+0*2^6+0*2^5+0*2^4+1*2^3+1*2^2+1*2^1+1*2^0=143
可能有的朋友沒看懂上面的計算公式是什么意思,其實就是將2進制的每一個數都乘以2的n次方,然后將加結果相加,其中n代表的是二進制中從右往左數,坐標從0開始,每一個數字所在的位置,
關于二進制的加減乘除的計算,在百度百科中有詳細的介紹,感興趣的可以自己搜索,
位運算子
位運算子以及對應的描述如下所示:
-
& 位與:都為1,結果才為1
-
| 位或: 只要有一個為1,結果就為1
-
^ 異或 :兩個值不同時,結果為1
-
~ 位反:即按位取反,1變0,0變為1
要注意負數要采用補碼表示,補碼轉原碼的方式:最高位不變,其余取反然后加1
-
<< 左移: 最高位丟掉,低位補0,左邊為高位,右邊為低位
-
>> 右移: 低丟丟棄,高位補0

再出兩道題考考你們是否掌握了位運算的用途:
題目1:
計算20往左移2位,得到結果a,20往右移動2位,得到結果b,然后列印出a,b結果,
然后a&b,得到結果c,列印c的結果.要寫出計算程序,
題目2:
有a=10,b=8,交換兩個變數的值,不能用第三個變數,用異或的方式交換a和b的值,

看到這,運算子基本上就學完了,至于后面再日常作業中如何運用起來,就需要自己平時將所學知識融會貫通了,
運算子的優先級
程式中使用運算子,就跟我們以前學數學一樣,運算子有優先級,下圖的表格中列舉了一些運算子的優先級,優先級從上到下按照從高->低的優先級排列,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/308782.html
標籤:python
上一篇:通過Python繪制九種二次曲面
