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:
- Usando funciones bin() y
- 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