①题目要求
1)题目描述:
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。
2)输入描述:
输入一个十六进制的数值字符串。
3)输出描述:
输出该字符串的十进制字符串。
4)示例1:
输入:
0xA
输出:
10
②参考答案:
def func():
s = list(input().lower())
lst = []
num = 0
for i in range(len(s)):
if s[i] in ('0','1','2','3','4','5','6','7','8','9') and i>= 2:
lst.apeend(int(s[i]))
elif s[i] in ('a','b','c','d','e','f') and i >= 2:
x = ord(s[i]) - 87
lst.append(x)
for i in range(-1,-len(lst)-1,-1):
num += (int(lst[i]))*(16**(-i-1))
print(num)
func()
③知识点
1)ord()
ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
语法
以下是 ord() 方法的语法:
ord(c)
参数
- c -- 字符。
返回值
返回值是对应的十进制整数。