Programa de Python para multiplicar dos números binarios

Dados dos números binarios, la tarea es escribir un programa Python para multiplicar ambos números.

Ejemplo:

firstnumber = 110
secondnumber = 10
Multiplication Result = 1100

Podemos multiplicar dos números binarios de dos formas usando python, y estas son:

  1. Usando funciones bin() y
  2. Sin usar funciones predefinidas

Método 1: Uso de funciones bin

Ahora, escribamos un programa usando funciones predefinidas:

Python3

firstnumber = 110
secondnumber = 10
  
firstnumber = str(firstnumber)
secondnumber = str(secondnumber)
  
Multiplication = int(firstnumber, 2) * int(secondnumber, 2)
binaryMul = bin(Multiplication)
  
print("\nResult = " + binaryMul)

Producción:

Result = 0b1100

Método 2: sin usar ninguna función predefinida

También podemos multiplicar dos números binarios cualesquiera sin usar ninguna función predefinida o mediante una función definida por el usuario.

Python

def binaryProduct(binaryOne, binaryTwo):
    i = 0
    remainder = 0
    sum = []
    binaryProd = 0
  
    # if firstBinary number or second Binary number is not
    # zero then calculate the product of two Binary numbers
    while binaryOne != 0 or binaryTwo != 0:
        sum.insert(i, (((binaryOne % 10) + (binaryTwo % 10) + remainder) % 2))
        remainder = int(((binaryOne % 10) + (binaryTwo % 10) + remainder) / 2)
        binaryOne = int(binaryOne/10)
        binaryTwo = int(binaryTwo/10)
        i = i+1
  
    # if remainder value is not equal to
    # zero then insert the digit to sum array
    if remainder != 0:
        sum.insert(i, remainder)
        i = i+1
    i = i-1
    while i >= 0:
        binaryProd = (binaryProd * 10) + sum[i]
        i = i-1
    return binaryProd
  
  
binaryMultiply = 0
factor = 1
firstBinary = 110
  
secondBinary = 10
  
# Now check if secondbinary number have any
# digit or not and continue multiplying
# each digit of the second binary number with
# first binary number till the last digit of
# second binary number
while secondBinary != 0:
    digit = secondBinary % 10
    if digit == 1:
        firstBinary = firstBinary * factor
        binaryMultiply = binaryProduct(firstBinary, binaryMultiply)
    else:
        firstBinary = firstBinary * factor
    secondBinary = int(secondBinary/10)
    factor = 10
print("\nMultiplication Result = " + str(binaryMultiply))

Producción:

Multiplication Result = 1100

Publicación traducida automáticamente

Artículo escrito por AnujMehla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *