Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
在我的印象里面进制互相转换确实是很常见的问题,所以在Python中,自然也少不了把下面这些代码收为util。
这是从网上搜索的一篇也的还可以的Python进制转换,经过验证可以使用。下面贴出它的实现代码:
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#2/10/16basetrans.wrotebysrcdogon20th,April,2009
#ldelementsinbase2,10,16.
importos,sys
#globaldefinition
#base=[0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F]
base=[str(x)forxinrange(10)]+[chr(x)forxinrange(ord('A'),ord('A')+6)]
#bin2dec
#二进制to十进制:int(str,n=10)
defbin2dec(string_num):
returnstr(int(string_num,2))
#hex2dec
#十六进制to十进制
defhex2dec(string_num):
returnstr(int(string_num.upper(),16))
#dec2bin
#十进制to二进制:bin()
defdec2bin(string_num):
num=int(string_num)
mid=[]
whileTrue:
ifnum==0:break
num,rem=divmod(num,2)
mid.append(base[rem])
return''.join([str(x)forxinmid[::-1]])
#dec2hex
#十进制to八进制:oct()
#十进制to十六进制:hex()
defdec2hex(string_num):
num=int(string_num)
mid=[]
whileTrue:
ifnum==0:break
num,rem=divmod(num,16)
mid.append(base[rem])
return''.join([str(x)forxinmid[::-1]])
#hex2tobin
#十六进制to二进制:bin(int(str,16))
defhex2bin(string_num):
returndec2bin(hex2dec(string_num.upper()))
#bin2hex
#二进制to十六进制:hex(int(str,2))
defbin2hex(string_num):
returndec2hex(bin2dec(string_num))
热门推荐
10 祝美术老师祝福语简短
11 信耶稣的人祝福语简短
12 许愿星姐妹祝福语简短
13 高考送考祝福语简短
14 婚礼西装祝福语简短男士
15 孩子16岁祝福语简短
16 生日祝福语 简短独特高考
17 早日回国祝福语简短英语
18 回国了祝福语简短英语