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()))
Exemple #5
0
 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
Exemple #6
0
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