python之各種進位制的轉換
阿新 • • 發佈:2019-01-29
最近在學習密碼學,其間用到了很多關於各種進位制的轉換,在這裡就寫寫,權當記筆記了!
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中沒有字元,所以雙引號和單引號之間沒有什麼區別。
還有針對各進位制的字串操作,如切片之類的,這裡就不說了。