思路:
从左到右计算截止到每位的累加值,如值327
从百位开始计算
3 = 3
到十位
3*8 + 2 = 26
到个位
26*8 + 7 = 215
即八进制327对应的十进制为215
代码实现如下:
result = 0 #保存转换为十进制的结果
v = '327' # 输入一个八进制的数
for i in range(len(v)):
print('v[{0}]={1}'.format(i, v[i]))
print(ord(v[i])) # ord返回一个字符对应的ASCII数值
print(ord('0')) # 对应ascii值为48
result = result * 8 + ord(v[i]) - ord('0') # 如ord('3')=51,ord('0')=48,则51-48=3表示该值
#print(result)
print('result:',result)
结果为
v[0]=3
51
48
v[1]=2
50
48
v[2]=7
55
48
result: 215
reference:
https://www.runoob.com/python/python-exercise-example82.html