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