进制转换-Python

二进制转十进制

s为字符串
int(s,2)

print(int('1100',2))
>>> 12

八进制转十进制

s为字符串
int(s,8)

print(int('702',8))
>>> 450

十六进制转十进制

s为字符串
int(s,16)

print(int('A2',16))
>>> 162

十进制转二进制

n为整型,返回的是字符串
bin(n)

print(bin(8))
>>> 0b1000

print(bin(8)[2:])
>>> 1000

其他进制转十进制

def Others_to_ten(s, n, res=0):
    s = s[::-1]
    for i in range(len(s)):
        if s[i].isalpha():
            m = ord(s[i].upper())-55
        else:
            m = int(s[i])
        res += n**i*m
    return res
 
# e.g 十五进制转十进制
s = '1a'
n = 15
print(Others_to_ten(s,n))
>>> 25

十进制转八进制

n为整型,返回的是字符串
oct(n)

print(oct(9))
>>> 0o11

十进制转十六进制

n为整型,返回的是字符串
hex(n)

print(hex(109))
>>> 0x6d

十进制转其他进制

def Ten_to_others(num, n, res=''):
    if num <= n:
        if num == n:
            res = '1' + str(num % n) + res
        elif num >= 10:
            res = chr(num % n + 55) + res
        else:
            res = str(num % n) + res
        return res
    else:
        if num % n >= 10:
            res = chr(num % n + 55) + res
        else:
            res = str(num % n) + res
        num = num // n
        return Ten_to_others(num,n,res)
        
# e.g 十进制转十三进制
for i in range(50):
    print(Ten_to_others(i,13),'\t',end="")
>>> 0 	1 	2 	3 	4 	5 	6 	7 	8 	9 	A 	B 	C 	10 	11 	12 	13 	14 	15 	16 	17 	18 	19 	1A 	1B 	1C 	20 	21 	22 	23 	24 	25 	26 	27 	28 	29 	2A 	2B 	2C 	30 	31 	32 	33 	34 	35 	36 	37 	38 	39 	3A
   
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值