Python实现:十进制数与(2~16进制数)之间的互相转换

(最开始源于牛客网上的一道编程题 : [编程题] 数制转换

将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
# 将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
def XToInt(strNum,X):
sum = 0
strNum = strNum.lstrip("") #去掉开始的0(前导零)
length = len(strNum)
for i in range(length):
sum += ABCToNum(strNum[i])*(X**(length-i-1))
return sum
将int十进制转为Y进制的功能函数:(除Y取余法)
# 将int十进制转为Y进制的功能函数:(除Y取余法)
def intToY(num,Y):
res = ""
while (num!=0):
# temp=
# temp=
res = str(NumToABC(num%Y))+res
num = num//Y #取商
# res = int(res)
res.upper()
return res

其中的辅助函数为:

#  辅助功能函数
def ABCToNum(char):
if char in "":
return int(char)
if char in "Aa" :
return 10
if char in "Bb":
return 11
if char in "Cc" :
return 12
if char in "Dd":
return 13
if char in "Ee" :
return 14
if char in "Ff":
return 15
# 辅助功能函数
def NumToABC(intN):
if intN in [0,1,2,3,4,5,6,7,8,9]:
return intN
if intN ==10 :
return 'A'
if intN ==11 :
return 'B'
if intN ==12 :
return 'C'
if intN ==13 :
return 'D'
if intN ==14 :
return 'E'
if intN ==15 :
return 'F'

该题的完整实现代码:

#  辅助功能函数
def ABCToNum(char):
if char in "":
return int(char)
if char in "Aa" :
return 10
if char in "Bb":
return 11
if char in "Cc" :
return 12
if char in "Dd":
return 13
if char in "Ee" :
return 14
if char in "Ff":
return 15
# 辅助功能函数
def NumToABC(intN):
if intN in [0,1,2,3,4,5,6,7,8,9]:
return intN
if intN ==10 :
return 'A'
if intN ==11 :
return 'B'
if intN ==12 :
return 'C'
if intN ==13 :
return 'D'
if intN ==14 :
return 'E'
if intN ==15 :
return 'F' # 将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
def XToInt(strNum,X):
sum = 0
strNum = strNum.lstrip("") #去掉开始的0(前导零)
length = len(strNum)
for i in range(length):
sum += ABCToNum(strNum[i])*(X**(length-i-1))
return sum
# 将int十进制转为Y进制的功能函数:(除Y取余法)
def intToY(num,Y):
res = ""
while (num!=0):
# temp=
# temp=
res = str(NumToABC(num%Y))+res
num = num//Y #取商
# res = int(res)
res.upper()
return res def NumberSystemConversion():
X,strInput,Y = input().split()
intA = XToInt(strInput,int(X))
outB = intToY(intA,int(Y))
print(outB)
NumberSystemConversion()

结果可以为:

Python实现:十进制数与(2~16进制数)之间的互相转换

上一篇:使用jdbc连接上oracle的两种方法


下一篇:poj3069 Saruman's Army