我的意思是如何从任何数字系统转换为十进制系统,并摆脱该系统内部的数字系统!此代码是三重系统的示例:
请注意,数字 001 不计入第二个计数器,因为它是二进制系统!
这段代码可以在小型系统之间转换,但不能转换超过 100 个数字的系统我试图让他这样做,但我失败了。
谁能帮我?
def To_decimal(num_str):
dec_num = 0
f = len(num_str)-1
for num in num_str:
dec_num +=int(num)*(3**f)
f-=1
return dec_num
def Find(i,txt):
for v in txt:
if v == i:
return False
return True
def Number_system_of(num):
txt = ""
for i in num:
if Find(i,txt):
txt += i
return len(txt)
t = 0
r=["0","1","2"]
k=[" "," "," "]
x = 0
while x!= 3:
k[0] = r[x]
x+=1
x1 = 0
while x1 != 3:
k[1] = r[x1]
x1+=1
x2 = 0
while x2 != 3:
k[2] = r[x2]
x2+=1
s=""
s = k[0]+k[1]+k[2]
if Number_system_of(s) == 3:
t+=1
print(s,t,To_decimal(s))
出去 :
000 0 0
001 0 1
002 0 2
010 0 3
011 0 4
012 1 5
020 1 6
021 2 7
022 2 8
100 2 9
101 2 10
102 3 11
110 3 12
111 3 13
112 3 14
120 4 15
121 4 16
122 4 17
200 4 18
201 5 19
202 5 20
210 6 21
211 6 22
212 6 23
220 6 24
221 6 25
222 6 26