>>> 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'