如何将六进制转换为十进制?
我正在尝试写一个程序,把一个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'