1. 程式人生 > >【python小課堂專欄】python小課堂03

【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

(八進位制) 所以小寫o

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的朋友,歡迎關注我的公眾號: 咪哥雜談