如何将六进制转换为十进制?

1 投票
2 回答
1025 浏览
提问于 2025-04-18 01:21

我正在尝试写一个程序,把一个6进制的数字转换成10进制的数字,但好像不太成功。有没有人能帮帮我?

a = 75
if a == 0:
    return 0
a = str(a)
result = (a[0])
for i in a[:1]:
    result *= 6
    result += (i)
print result

结果不对。

现在假设我想加两个6进制的数字,我该怎么做呢?我试着先把每个数字转换成6进制再相加,但结果还是不对。我也试过先相加再转换成6进制,但还是不行。

那对于乘法,我该怎么做呢?

谢谢!

2 个回答

0

这个问题“我怎么能加两个6进制的数字或者乘它们”其实不太合理。

在计算机里,所有的数字都是用2进制表示的。

而且,进制只是数字的一种表示方式。所以,比如说(用10进制表示的数字'75')+(用10进制表示的数字'103')=(用10进制表示的数字'178'),这个结果和进制没有关系。

进制主要是在你需要显示数字的时候才有用,因为那时候需要把计算机内部的二进制转换成我们能看懂的字符。在大多数编程语言中,默认是用10进制来显示。

所以,针对你的问题“我怎么能加两个6进制的数字或者乘它们?”我想说的是;你并不这样做,你是在2进制的数字上进行运算。如果你的输入和输出是6进制的,你需要在读写这些数字的时候特别注意,确保转换成正确的进制。

5

你可以使用 int 函数,并且可以设置一个叫做基数的参数,像这样:

int(str(number), 6)

比如说,

print(int(str(55), 6))
# 35
print(int('10', 6))
# 6
print(int('6', 6))
# ValueError: invalid literal for int() with base 6: '6'

撰写回答