您的位置:首页 > 编程语言 > Python开发

python中的进制转换

2013-03-24 18:36 926 查看
#10进制转二进制(支持任何正整数)
def _10to2(num):
    tmp=""
    result=""
    #获取二进制字符串
    while True:
        tmp=tmp+str(num%2)
        num=num//2
        if num==0:
            break
    #反转字符串
    #length=len(tmp)-1
    #while True:
    #    result=result+tmp[length]
    #    length=length-1
    #    if length<0:
    #        return result
    tmp=list(tmp)
    tmp.reverse()
    tmp="".join(tmp)
    return tmp
#2进制转10进制(支持任何正整数)
def _2to10(num):
    result=0
    length=len(num)
    for i in range(0,length):
        #1010:1*(2**3)+0*(2**2)+1*(2**1)+0*(2**0)
        #result=result+2**(length-i-1)*int(num[i])
        result=result+(int(num[i])<<length-i-1)
    return result;

#10进制转二进制(兼容正负数,32位机)
def _10to2_32(num):
    if(abs(num)!=num):
        num=2**32+num
    return _10to2(num)

#2进制转10进制(兼容正负数,32位机,若参数位数大于32位结果无效)
def _2to10_32(num):
    result=_2to10(num)
    if result>0x7fffffff:
        result=result-2**32
    return result
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: