某公司笔试题 - 进制转化(附python代码)

发布时间 2023-08-11 23:08:13作者: Alpha_To_Beta
# 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
# 数据范围: 保证结果在1 <= n <= 2**31 -1

hex_str = input("请输入一个十六进制的数: ")

while True:
try:
# 将十六进制的数转成10进制
s = int(hex_str, 16)
# 数据的取值范围 [1,2147483647]
if s >= 1 and s <= 2**31-1:
print('转成十进制后的数是: ' + str(s))
break
else:
print('输入的十六进制数已超出限制的数据范围,请重新输入')
hex_str = input("请输入一个十六进制的数: ")
# 捕获异常,并处理
except ValueError:
print('输入的数不是一个十六进制的数,请重新输入')
hex_str = input("请输入一个十六进制的数: ")