1. 程式人生 > 其它 >python 字串二進位制、十進位制和十六進位制

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組成

   比如  0X160Xf1(均為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進位制的。