Python各進製間的轉換

2021-07-04 16:21:12 字數 1616 閱讀 4411

表示各進製的符號:

b:二進位制,o:八進位制,d:十進位制,x:十六進製制

bin()、oct()、hex()返回值均為字串,且分別帶有0b、0o、0x字首。

1、十進位制轉二進位制

>>> bin(10)

'0b1010'

>>>

''.format(10)

'1010'

這兩種方法返回的都是二進位制的字串表示。

對十進位制數直接轉二進位制

list1 = 

ifnum

<= 1

andnum >= 0:

print "二進位制:%d" %(num)

else :

while

num > 1 :

num /= 2

list1.reverse()

2、十進位制轉八進位制

>>> oct(12)

'014'

>>>

''.format(12)

'14'

3、十進位制轉十六進製制

>>> hex(12)

'0xc'

>>>

''.format(12)

'c'

4、二進位制轉十進位制

>>> int('1010',2)

10>>> eval('0b10')

2

int(string_num, n):

string_num:進製的字串表示

n:表示string_num是多少進製的數

5、八進位制轉十進位制

>>> int('014',8)

12>>>

''.format(014)

'12'

>>> eval('0o10')

8

6、十六進製制轉十進位制

>>> 

''.format(0xc)

'12'

>>> int('0xc',16)

12>>> eval('0x10')

16

注意:

hex函式比格式化字串函式format慢,不推薦使用。

eval函式比int函式慢,不推薦使用。

二進位制、十六進製制、八進位制之間的轉換,可以借助十進位制這個中間值,即先轉十進位制再轉其他進製,也可以直接使用函式進行轉換。如:

十六進製制轉二進位制:

#借助十進位制

>>> bin(int('fc',16))

'0b11111100'

#利用函式直接轉

>>> bin(0xa)

'0b1010'

>>> oct(0xa)

'012'

>>> hex(10)

'0xa'

各進製間的相互轉換

1 十進位制轉二進位制 十進位制整數轉換為二進位制整數採用 除2取餘,逆序排列 法。例如 2 十進位制轉八進位制 和轉為二進位制一樣,將十進位制數除以八,按順序記錄每次得到的餘數,直到商為0,然後將得到的各個餘數從最後得到的那個開始向右排起就是乙個八進位制數了 例如 3 十進位制轉十六進製制 跟上面...

什麼是進製?各進製間如何轉換?

進製就是進製技術制,是人為定義的帶進製的計數方法。通俗點理解像我們以寫 正 字計數,只是這樣沒有進製。對於x進製 就是逢x進一位,例如 十進位制就是逢十進一,二進位制是逢二進一,十六進製制是逢十六進一,以此類推。000 0000 0111 1111 12 7 2 62 52 42 3 2 22 12...

python 進製間的轉換

int string num,n string num表示某種進製的字串,n表示string num是什麼進製數 2 8 16 進製轉為10進製 使用int 或者eval 10 進製轉為2 8 16進製制 使用bin oct hex 或者 使用format b 二進位制,o 八進位制,d 十進位制,...