python中的進制轉換

表示各進制的符號:

  • b:二進制
  • o:八進制
  • d:十進制
  • x:十六進制
  • bin()、oct()、hex()返回值均爲字符串,且分別帶有0b、0o、0x前綴

十進制轉二進制

>>> bin(10)
'0b1010'

>>> '{0:b}'.format(10)
'1010'

這兩種方法返回的都是二進制的字符串表示.對十進制數直接轉二進制.app

list1 = []
if num <= 1 and num >= 0:
  print "二進制:%d" %(num)
else :
  while num > 1 :
    list1.append(str(num % 2))
    num /= 2
  list1.append(str(num))
  list1.reverse()

十進制轉八進制

>>> oct(12)
'014'
>>> '{0:o}'.format(12)
'14'

十進制轉十六進制

>>> hex(12)
'0xc'
>>> '{0:x}'.format(12)
'c'

二進制轉十進制

>>> int('1010',2)
10

>>> eval('0b10')
2

int(string_num, n): string_num:進制的字符串表示 n:表示string_num是多少進制的數函數

八進制轉十進制

>>> int('014',8)
12
>>> '{0:d}'.format(014)
'12'

>>> eval('0o10')
8

十六進制轉十進制

>>> '{0:d}'.format(0xc)
'12'
>>> int('0xc',16)
12
>>> eval('0x10')
16

注意: hex函數比格式化字符串函數format慢,不推薦使用。 eval函數比int函數慢,不推薦使用。code

二進制、十六進制、八進制之間的轉換,能夠藉助十進制這個中間值,即先轉十進制再轉其餘進制,也能夠直接使用函數進行轉換。如: 十六進制轉二進制:orm

#藉助十進制
>>> bin(int('fc',16))
'0b11111100'
#利用函數直接轉
>>> bin(0xa)
'0b1010'
>>> oct(0xa)
'012'
>>> hex(10)
'0xa'
相關文章
相關標籤/搜索