【python小課堂專欄】python小課堂03
python小課堂03 - 基本資料型別進位制篇
什麼是進位制?
來自百度: 進位制也就是進位計數制,是人為定義的帶進位的計數方法(有不帶 進位的計數方法,比如原始的結繩計數法,唱票時常用的“正”字計 數法,以及類似的tally mark計數)。 對於任何一種進位制---X進位制, 就表示每一位置上的數運算時都是逢X進一位。 十進位制是逢十進 一,十六進位制是逢十六進一,二進位制就是逢二進一,以此類推,x進 制就是逢x進位。
通俗的講,所為的進位制就是一種計數時表示的方法,多少進位制,就是當滿足此進位制時就向高位進一位,比如我們生活中常用的十進位制,11 + 9 = 20,個位數1 + 9 = 10,所以此時向高一位進1,最後得出的結果就是20。舉個更簡單的例子,生活中我們經常以60秒作為1分鐘來計數,這也可以理解為一種進位制(“60進位制”)。
Tips(小常識): 二進位制: 0 和 1 表示.八進位制:0,1,2, 3 ,4,5,6,7 十六進位制:0,1,2,3....9,A,B,C,D,E,F (十六進位制從10到15分別用A-F來表示)
動手實踐各種進位制
有了上節課的IDLE基礎,這次來看下在python中,對應的進位制數是如何表達的呢?
找到python中的idle,前期練手通過這個工具比較便捷,可以右鍵傳送到桌面,下次找就不用費勁了!(後續課程不在介紹了!)
先來看下在python中,如何表達二進位制,八進位制,十六進位制以及我們常用的十進位制,如下圖所示:
0b:binary
(二進位制) 所以小寫b
0o:octal
0x:Hexadecimal
(十六進位制) 所以小寫x
由上圖可以看到結果:
>>> 0b1
1
>>> 0b10
2
>>> 0b100
4
>>> 0b1000
8
>>> 0o1
1
>>> 0o10
8
>>> 0o100
64
>>> 0o1000
512
>>> 0x1
1
>>> 0x10
16
>>> 0x100
256
>>> 0x1000
4096
>>>
如何計算出上圖的結果呢?
二進位制計算:
0b1 : 1*2^0 = 1
0b10 : 1*2^1 + 0*2^0 = 2 + 0 = 2
0b100 : 1*2^2 + 0*2^1 + 0*2^0 = 4 + 0 + 0 = 4
0b1000 : 1*2^3 + 0*2^2 + 0*2^1 + 0*2^0 = 8 + 0 + 0 + 0 = 8
這也是學過計算機專業同學嘴中經常說到的“8421”!等同於二進位制的1111。
八進位制計算:
…後續以此類推!
十六進位制不列舉了,一個道理!
忘了說了!常規的十進位制,實際在python中正常輸入即可,就像上一章所講的整數型別,所表示的都是十進位制的數字!
進位制之間的轉換
進位制之間的轉換,便於我們在不同場景下有著不同的進製表示,就像生活中的時間,時間很短的情況下,咱們可以用秒作為單位來衡量,一旦時間很長,則用分鐘,或者小時來計量了,此時需要將秒轉換為分鐘或者小時,與進位制是一個道理的!
下面來看下python中如何將上述的進位制之間做轉換。
bin(): 將括號中的數值轉為二進位制
int():將括號中的數值轉為十進位制
oct():將括號中的數值轉為八進位制
hex():將括號中的數值轉為十六進位制
以上四個函式方法類似於上章講到的type(),大家可以先理解這是一種寫法即可。在python中這樣的語法非常簡單,就如同寫英語一樣,就是一句話!
小結
在我們實際的程式設計過程中,進位制可能會接觸的非常少,但是依然會用到,再此算是做一個基礎的總結吧。
想學習python的朋友,歡迎關注我的公眾號: