sábado, 17 de agosto de 2013

Suma Resta Multiplicacion Y Division de Binarios

Leave a Comment
Hola yo soy Edwar y hoy les quiero enseñar con un fácil código de python como sumar, restar, multiplicar y dividir números binarios, bueno sin mas preámbulo manos a la obra.

Primero debemos hacer que el numero binario se convierta en entero o base 10:

def convertir_binario( binario ):
     l = len(binario) - 1
     entero = 0
     for i in binario:
          potencia = 2 ** l
          entero = entero + ( int(i) * potencia)
          l = l - 1
     return entero

Luego de convertir el binario a base 10 podemos realizar las operaciones que necesitamos suma, resta, multiplicación y división y lo hacemos de esta manera

def sumar(pnumero, snumero):
     resultado=pnumero+snumero
     return resultado

def restar(pnumero, snumero):
     resultado=pnumero-snumero
     return resultado

def dividir(pnumero, snumero):
     resultado=pnumero/snumero
     return resultado

def multiplicar(pnumero, snumero):
     resultado=pnumero*snumero
     return resultado
Ahora que ya hemos realizado las operaciones terminaremos convirtiendo nuevamente los resultados en base 2 o binario, y lo hacemos de esta manera:

def convertir_entero(numero_entero):
     binario = ""
     while (True):
          aux = str( numero_entero % 2 )
          numero_entero = int( numero_entero / 2 )
          binario = aux + binario
          if (numero_entero <= 1):
               binario = ( str( numero_entero ) if numero_entero > 0 else "" ) + binario
               break
     return binario

Listo ya solo basta ponerle la lógica a nuestro programa y esto lo podemos hacer a nuestro gusto yo en lo personal lo realice de esta manera pero es totalmente configurable:

def main():
     primer_binario=raw_input('Primer binario')
     segundo_binario=raw_input('Segundo binario')
     pcbin=convertir_binario(primer_binario);
     scbin=convertir_binario(segundo_binario);
     suma=sumar(pcbin, scbin);
     resta=restar(pcbin, scbin);
     divicion=dividir(pcbin, scbin);
     multiplicacion=multiplicar(pcbin, scbin);
     print "El resultado de la suma de "+primer_binario+" + "+segundo_binario+" = "+convertir_entero(suma);
     print "El resultado de la resta de "+primer_binario+" - "+segundo_binario+" = "+convertir_entero(resta);
     print "El resultado de la multiplicación de "+primer_binario+" * "+segundo_binario+" = "+convertir_entero(multiplicacion);
     print "El resultado de la divición de "+primer_binario+" / "+segundo_binario+" = "+convertir_entero(divicion);


main()

Para terminar y como lo prometí desde un comienzo mis POST serán lo mas cortos y explicativos posible abajo des dejo el link de descarga del archivo para que lo prueben, cualquier duda, inquietud y/o sugerencia por favor déjalo en los comentarios estaré pendiente de cualquier sugerencia.

Link de la Calculadora binaria



def convertir_binario( binario ):
     l = len(binario) - 1
     entero = 0
     for i in binario:
          potencia = 2 ** l
          entero = entero + ( int(i) * potencia)
          l = l - 1
     return entero

     binario = ""
     while (True):
          aux = str( numero_entero % 2 )
          numero_entero = int( numero_entero / 2 )
          binario = aux + binario
          if (numero_entero <= 1):
               binario = ( str( numero_entero ) if numero_entero > 0 else "" ) + binario
               break
     return binario

def sumar(pnumero, snumero):
     resultado=pnumero+snumero
     return resultado

def restar(pnumero, snumero):
     resultado=pnumero-snumero
     return resultado

def dividir(pnumero, snumero):
     resultado=pnumero/snumero
     return resultado

def multiplicar(pnumero, snumero):
     resultado=pnumero*snumero
     return resultado

def main():
     primer_binario=raw_input('Primer binario')
     segundo_binario=raw_input('Segundo binario')
     pcbin=convertir_binario(primer_binario);
     scbin=convertir_binario(segundo_binario);
     suma=sumar(pcbin, scbin);
     resta=restar(pcbin, scbin);
     divicion=dividir(pcbin, scbin);
     multiplicacion=multiplicar(pcbin, scbin);
     print "El resultado de la suma de "+primer_binario+" + "+segundo_binario+" = "+convertir_entero(suma);
     print "El resultado de la resta de "+primer_binario+" - "+segundo_binario+" = "+convertir_entero(resta);
     print "El resultado de la multiplicación de "+primer_binario+" * "+segundo_binario+" = "+convertir_entero(multiplicacion);
     print "El resultado de la divición de "+primer_binario+" / "+segundo_binario+" = "+convertir_entero(divicion);


main()

0 comentarios: