Open In App

Python Program to Multiply Two Binary Numbers

Last Updated : 23 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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:

  1. Using bin() functions and
  2. 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


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads