
Code: Alles auswählen
import string
import sys
class Convert:
def __init__(self,number,fromsystem,system):
self.system = system
self.fromsystem = fromsystem
self.number = number
self.system2dez()
self.dez2system()
#print self.number
def __repr__(self):
return self.number
def system2dez(self):
liste = self.chars2int()
i = 0
erg = 0
while(i < len(liste)):
erg += liste[i]*self.fromsystem**(len(liste)-1-i)
i+=1
#print erg
self.number = erg
def chars2int(self):
liste = list(self.number)
#print liste
i = 0
retlist = []
letters = string.ascii_letters[26:]
while(i < len(liste)):
if(liste[i] in letters):
retlist.append(self.searchstelle(liste[i]))
else:
retlist.append(int(liste[i]))
i+=1
return retlist
def searchstelle(self,letter):
i = 0
letters = string.ascii_letters[26:]
while(i < len(letters)):
if(letters[i] == letter):
return i+10;
i+=1
def chars(self,liste):
letters = string.ascii_letters[26:]
i = 0
while(i < len(liste)):
if(liste[i] >= 10):
liste[i] = letters[liste[i]-10]
i+=1
return liste
def zahl2str(self,array):
i = 0
while(i < len(array)):
array[i] = str(array[i])
i+=1
return array
def dez2system(self):
erg = int(self.number)
binary = []
while(1):
if(erg / self.system == 0):
binary.append(erg % self.system)
erg = (erg - erg % self.system) / self.system
binary = self.chars(binary)
binary = self.zahl2str(binary)
binary.reverse()
#print binary
"".join(binary)
break
binary.append(erg % self.system)
erg = (erg - erg % self.system) / self.system
self.number = "".join(binary)
if __name__ == "__main__":
argv = sys.argv[1:]
if("-h" in argv or "--help" in argv or len(argv) != 3):
print "python convert.py [ZAHL] [AUSGANGSSYSTEM] [AUSGABESYSTEM]"
print "-h -- print this help"
sys.exit(1)
a = argv[0].upper()
b = int(argv[1])
c = int(argv[2])
instance = Convert(a,b,c)
print instance.number