写个16进制转10进制的代码
时间: 2023-09-11 17:11:58 浏览: 32
以下是 Python 代码实现 16 进制转 10 进制:
```python
def hex_to_dec(hex_str):
dec_num = 0
hex_str = hex_str.lower()
for i in range(len(hex_str)):
digit = hex_str[i]
if digit.isdigit():
dec_num += int(digit) * (16 ** (len(hex_str)-1-i))
elif digit.isalpha():
dec_num += (ord(digit)-87) * (16 ** (len(hex_str)-1-i))
else:
raise ValueError("Invalid input")
return dec_num
```
其中,函数 `hex_to_dec` 接收一个参数 `hex_str`,表示要转换的 16 进制字符串。函数内部定义了变量 `dec_num`,表示最终转换后的 10 进制值。然后,将 `hex_str` 转换成小写字母,遍历字符串中的每个字符,根据字符是数字还是字母进行不同的转换。
如果字符是数字,则将其转换成对应的整数,乘以 16 的相应次幂,累加到 `dec_num` 中;如果字符是字母,则将其转换成对应的整数,乘以 16 的相应次幂,累加到 `dec_num` 中。如果字符不是数字或字母,则抛出异常。
最后,返回变量 `dec_num`,即为转换后的 10 进制值。