1. 程式人生 > >python之各種進位制的轉換

python之各種進位制的轉換

最近在學習密碼學,其間用到了很多關於各種進位制的轉換,在這裡就寫寫,權當記筆記了!
python 中除了十進位制,其他進位制的數只能用字串表示。python中只有字串型別,沒有字元型別。
下面介紹幾個函式:

1.  int(s,base)  將其他進位制轉換為十進位制

s為要轉化為數值型別的字串,base則為轉換前的進位制。

>>> int('1111',2)
15
>>> int('10',16)
16
>>> int('11',8)
9
2.  bin(x)  將一個十進位制數轉化為二進位制數(即返回一個二進位制數的字串),x為十進位制數(不是字串)
>>> bin(8)
'0b1000'
>>> bin(8)[2:]
'1000'
3.  oct(x)  將一個十進位制數轉化為八進位制數(即返回一個八進位制數的字串),x為十進位制數(不是字串)
>>> oct(10)
'0o12'
>>> oct(10)[2:]
'12'
4.  hex(x)   將一個十進位制數轉化為十六進位制數(即返回一個十六進位制數的字串),x為十進位制數(不是字串)
>>> oct(20)
'0o24'
>>> oct(20)[2:]
'24'

另外,還有兩個函式也常常會用到:

1.  chr(x) 將十進位制轉換為ASCII中相應的字元。
>>> chr(65)
'A'
>>> chr(97)
'a'
2.  ord(s)   將ASCII中相應的字元轉換為十進位制數。
>>> ord('a')
97
>>> ord('A')
65
>>> ord("a")
97

由於python中沒有字元,所以雙引號和單引號之間沒有什麼區別。
還有針對各進位制的字串操作,如切片之類的,這裡就不說了。