从原理上将十六进制数变为八进制数python

(此法较慢)
本文介绍从原理上将十六进制数变为八进制数,思路是先将输入的十六进制数变为十进制,再将十进制数变为八进制。代码如下:

n=int(input())
a=[]
for i in range(n):
    a.append(str(input()))
for i in a:
    b=[]
    for j in i:
        b.append(j)
    l=len(b)
    d=0
    c=0
    for k in range(l):
        if b[k]=='A' or b[k]=='a':
            d+=10*16**(l-k-1)
        elif b[k]=='B' or b[k]=='b':
            d+=11*16**(l-k-1)
        elif b[k]=='C' or b[k]=='c':
            d+=12*16**(l-k-1)
        elif b[k]=='D' or b[k]=='d':
            d+=13*16**(l-k-1)
        elif b[k]=='E' or b[k]=='e':
            d+=14*16**(l-k-1)
        elif b[k]=='F' or b[k]=='f':
            d+=15*16**(l-k-1)
        else:
            d+=(int(b[k]))*16**(l-k-1)
    m=0
    while d>0:
        p=d%8
        d=d//8
        c+=p*10**m
        m+=1
    print(c)

例如:

3
e3d
4abc
ABCDE
7075
45274
2536336

其中3表示将输入3个16进制数,下面输入3个数后直接输出转换后的八进制数。其中3可为任意数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值