class ConversorBaseHexadecimal(Bases): def __init__(self, hexadecimal=""): self.binario = Binario() Bases.__init__(self, hexadecimal) pass def hexadecimalToBinario(self): binarioEntero = "" binarioFraccion = "" for oc in self.entero: binarioEntero = binarioEntero + self.listaHexaCom[oc] binarioEntero = binarioEntero[binarioEntero.find("1"):len(binarioEntero )] for oc in self.fraccion: binarioFraccion = binarioFraccion + self.listaHexaCom[oc] return str(binarioEntero) + "." + str(binarioFraccion) def hexadecimalToDecimal(self): binario = self.hexadecimalToBinario().split(".") return self.binario.binarioToDecimalEnteroFraccion( binario[0], binario[1]) def hexadecimalToOctal(self): binario = self.hexadecimalToBinario().split(".") return self.binario.binarioToOctalEnteroFraccion( binario[0], binario[1])
class ConversorBaseDecimal(Bases): def __init__(self, decimal = ""): self.binario = Binario() Bases.__init__(self, decimal) pass def decimalToBinarioEntero(self, entero = ""): if entero == "": entero = self.entero numero=int(entero) numerobinario="" if numero == 0.0: numerobinario=numerobinario+""+str(0) while numero>0.0: if numero%2==0: numerobinario=numerobinario+""+str(0) numero=numero/2 if numero%2==1: numerobinario=numerobinario+""+str(1) numero=(numero-1)/2 numerobinario=numerobinario[::-1] return str(numerobinario) def decimalToBinarioFraccion(self, fraccion = "", presicion = 20): if fraccion == "": fraccion = self.fraccion numero=float("0."+str(fraccion)) resultado="" i=0 while i<presicion: numero=numero*2 if numero>=1.0: numero=numero-1.0 resultado+="1" else: resultado+="0" i+=1 return str(resultado) def decimalToBinarioEnteroFraccion(self, presicion = 20, entero = "", fraccion = ""): if entero == "": entero = self.entero if fraccion == "": fraccion = self.fraccion return self.decimalToBinarioEntero(entero)+"."+self.decimalToBinarioFraccion(fraccion, presicion) def decimalToOctal(self): binario = self.decimalToBinarioEnteroFraccion().split(".") return self.binario.binarioToOctalEnteroFraccion(binario[0], binario[1]) def decimalToHexa(self): binario = self.decimalToBinarioEnteroFraccion().split(".") return self.binario.binarioToHexaEnteroFraccion(binario[0], binario[1]) pass
def trasformFrom32(self, form32="", pre=20): self.signo = form32[0] self.exponente = form32[1:9] self.mantisa = form32[9:len(form32)] if len(self.mantisa) < 23: while len(self.mantisa) <= 23: self.mantisa = self.mantisa + "0" binario = Binario() self.coma = int(binario.binarioToDecimalEntero(self.exponente) - 127) self.mantisa = "1" + self.mantisa[0:self.coma] + "." + self.mantisa[ self.coma:len(self.mantisa)] binario = Binario(self.mantisa) if self.signo == "0": return binario.binarioToDecimalEnteroFraccion(pre) if self.signo == "1": return "-" + str(binario.binarioToDecimalEnteroFraccion(pre))
class ConversorBaseOctal(Bases): def __init__(self, octal = ""): self.binario = Binario() self.listaOctal={'0':"000",'1':"001",'2':"010",'3':"011",'4':"100",'5':"101",'6':"110", '7':"111" } Bases.__init__(self, octal) pass def octalToBinario(self): binarioEntero = "" binarioFraccion = "" for oc in self.entero: binarioEntero = binarioEntero + self.listaOctal[oc] binarioEntero =binarioEntero[binarioEntero.find("1"):len(binarioEntero)] for oc in self.fraccion: binarioFraccion = binarioFraccion + self.listaOctal[oc] return str(binarioEntero)+"."+str(binarioFraccion) def octalToDecimal(self): binario = self.octalToBinario().split(".") return self.binario.binarioToDecimalEnteroFraccion(binario[0], binario[1]) def octalToHexa(self): binario = self.octalToBinario().split(".") return self.binario.binarioToHexaEnteroFraccion(binario[0], binario[1]) pass ## pruebas :D #obj = ConversorBaseOctal("26.0631464") #Binario: 10110.00011001100110011010 #Octal: 26.0631464 #Hexadecimal: 16.1999A #Decimal: 22.1000003814697265625 #print("en decimal es: "+str(obj.octalToDecimal())) #print("en binario es: "+str(obj.octalToBinario())) #print("en hexadecimal es: "+str(obj.octalToHexa()))
def __init__(self, octal=""): self.binario = Binario() self.listaOctal = { '0': "000", '1': "001", '2': "010", '3': "011", '4': "100", '5': "101", '6': "110", '7': "111" } Bases.__init__(self, octal) pass
class ConversorBaseOctal(Bases): def __init__(self, octal=""): self.binario = Binario() self.listaOctal = { '0': "000", '1': "001", '2': "010", '3': "011", '4': "100", '5': "101", '6': "110", '7': "111" } Bases.__init__(self, octal) pass def octalToBinario(self): binarioEntero = "" binarioFraccion = "" for oc in self.entero: binarioEntero = binarioEntero + self.listaOctal[oc] binarioEntero = binarioEntero[binarioEntero.find("1"):len(binarioEntero )] for oc in self.fraccion: binarioFraccion = binarioFraccion + self.listaOctal[oc] return str(binarioEntero) + "." + str(binarioFraccion) def octalToDecimal(self): binario = self.octalToBinario().split(".") return self.binario.binarioToDecimalEnteroFraccion( 0, binario[0], binario[1]) def octalToHexa(self): binario = self.octalToBinario().split(".") return self.binario.binarioToHexaEnteroFraccion(binario[0], binario[1]) pass
def __init__(self, hexadecimal=""): self.binario = Binario() Bases.__init__(self, hexadecimal) pass