python 字串二進位制、十進位制和十六進位制
技術標籤:python
二進位制
二進位制數是以 0b或者 0B開頭,並且所有字元只能包含 0和 1
比如 0101 是二進位制數
八進位制
八進位制數以 0O或 0開頭,並由0~7組成
比如 0266(八進位制數)
十進位制數
十進位制數第一位不是0,除表示正負符號外,要以1-9開頭,由0-9組成
比如 -123(十進位制數)123(十進位制數)
十六進位制數
十六進位制數以0X或0x開頭,由0-9,A-F或a-f組成
比如 0X16 、0Xf1(均為16進位制數)
轉化
十六進位制 到 十進位制
使用 int() 函式 ,第一個引數是字串 ‘0Xff’ ,第二個引數是說明,這個字串是幾進位制的數。 轉化的結果是一個十進位制數。
>>>int('0xf',16)
15
二進位制 到 十進位制
>>> int('10100111110',2)
1342
八進位制 到 十進位制
>>> int('17',8)
15
其實可以看到,不管 幾進位制數 轉換成 十進位制數 ,都是用 int() 函式 。之後後面的 第二個引數 寫清楚 前面字串 是 幾進位制數就可以 。注意一定要合法。 比如2進位制數就不能出現2這樣的字元。
十進位制 轉 十六進位制
>>> hex(1033)
‘0x409’
二進位制 轉 十六進位制
就是 二進位制先轉成 十進位制, 再轉成 十六進位制。
>>>hex(int('101010',2))
‘0x2a’
八進位制到 十六進位制
就是 八進位制先轉成 十進位制, 再轉成 十六進位制。
>>> hex(int('17',8))
‘0xf’
十進位制轉二進位制
>>> bin(10)
‘0b1010’
十六進位制轉 二進位制
十六進位制->十進位制->二進位制
>>> bin(int('ff',16))
‘0b11111111’
八進位制 到 二進位制
八進位制先到十進位制,再到二進位制
>>> bin(int('17',8))
‘0b1111’
二進位制 到 八進位制
>>> oct(0b1010)
‘012’
十進位制到八進位制
>>> oct(11)
‘013’
十六進位制到八進位制
>>> oct(0xf)
‘017’
可見oct 函式 可將 任意進位制的數 轉換成 8進位制的。