如果不是六十四进制,而是1-64以内任何进制呢
时间: 2024-04-17 11:25:06 浏览: 12
如果要将任意进制(1-64范围内)的数转换为十进制数,可以使用以下的Python代码:
```python
def base_to_decimal(number, base):
decimal_num = 0
power = 0
for i in range(len(number)-1, -1, -1):
digit = convert_to_decimal(number[i])
decimal_num += digit * (base ** power)
power += 1
return decimal_num
def convert_to_decimal(char):
if char.isdigit():
return int(char)
elif char.islower():
return ord(char) - 87
elif char.isupper():
return ord(char) - 29
elif char == '@':
return 62
elif char == '_':
return 63
```
函数`base_to_decimal`接受两个参数,一个是要转换的数字(字符串形式),另一个是进制数。函数内部使用`convert_to_decimal`函数来处理不同的字符,并将它们转换为对应的十进制值。然后使用指定的进制和权重进行计算,最终得到十进制数。
例如,如果要将"10"(64进制)转换为十进制数,可以调用函数如下:
```python
decimal_value = base_to_decimal("10", 64)
print(decimal_value)
```
输出结果将是:
```
64
```
如果要将"101"(3进制)转换为十进制数,可以调用函数如下:
```python
decimal_value = base_to_decimal("101", 3)
print(decimal_value)
```
输出结果将是:
```
10
```
希望这可以帮助到你!如有其他问题,请随时提问。