ALPHABET =('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')defalphabet2digit(alphabet):"""26进制 -> 10进制"""returnsum(ALPHABET.index(a)*(26** e)for e, a inenumerate(reversed(alphabet)))defdigit2alphabet(digit):"""10进制 -> 26进制"""
mod, remainder =divmod(digit,26)
alphabet = ALPHABET[remainder]while mod:
mod, remainder =divmod(mod,26)
alphabet = ALPHABET[remainder]+ alphabet
return alphabet
for i in('aa','bc','caa'):
d = alphabet2digit(i)
a = digit2alphabet(d)print(d, a, i == a)
二进制⇌十进制
defalphabet2digit(alphabet):"""2进制 -> 10进制"""returnsum(int(a)*(2** e)for e, a inenumerate(reversed(alphabet)))defdigit2alphabet(digit):"""10进制 -> 2进制"""
mod, remainder =divmod(digit,2)
alphabet =str(remainder)while mod:
mod, remainder =divmod(mod,2)
alphabet =str(remainder)+ alphabet
return alphabet
for i in(0,7,100):
a = digit2alphabet(i)
d = alphabet2digit(a)print(d, a, i == d)