python中的进制转换

表示各进制的符号:

  • b:二进制
  • o:八进制
  • d:十进制
  • x:十六进制
  • bin()、oct()、hex()返回值均为字符串,且分别带有0b、0o、0x前缀

十进制转二进制

>>> bin(10)
'0b1010'

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

这两种方法返回的都是二进制的字符串表示.对十进制数直接转二进制.

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函数慢,不推荐使用。

二进制、十六进制、八进制之间的转换,可以借助十进制这个中间值,即先转十进制再转其他进制,也可以直接使用函数进行转换。如: 十六进制转二进制:

#借助十进制
>>> bin(int('fc',16))
'0b11111100'
#利用函数直接转
>>> bin(0xa)
'0b1010'
>>> oct(0xa)
'012'
>>> hex(10)
'0xa'
223916_bL9y_2663968.jpg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值