二进制转十进制
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