Given two binary numbers, and the task is to write a Python program to multiply both numbers.
Example:
firstnumber = 110 secondnumber = 10 Multiplication Result = 1100
We can multiply two binary numbers in two ways using python, and these are:
- Using bin() functions and
- Without using pre-defined functions
Method 1: Using bin Functions
Now, Let’s write a program by using Pre-Defined Functions:
Python3
firstnumber = 110 secondnumber = 10 firstnumber = str (firstnumber) secondnumber = str (secondnumber) Multiplication = int (firstnumber, 2 ) * int (secondnumber, 2 ) binaryMul = bin (Multiplication) print ( "\nResult = " + binaryMul) |
Output:
Result = 0b1100
Time complexity: O(1)
Auxiliary space: O(1)
Method 2: Without using Any Pre-Defined Function
We can also multiply any two Binary Numbers without using any pre-defined Function or by user-defined function.
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)) |
Output:
Multiplication Result = 1100
Time complexity: O(n), where n is the length of the binary numbers.
Auxiliary space: O(n), as we are storing the binary product in the sum array.
Python3
from operator import * num1 = "110" num2 = "10" print ( bin (mul( int (num1, 2 ), int (num2, 2 )))) |
Output
0b1100