Thursday, October 23, 2025
HomeLanguagesPython program to implement Half Subtractor

Python program to implement Half Subtractor

Prerequisite: Half Subtractor in Digital Logic

Given two inputs of Half Adder A, B. The task is to implement the Half Subtractor circuit and Print output i.e Difference and Borrow of two inputs.

The half subtractor is also a building block for subtracting two binary numbers. It has two inputs and two outputs. This circuit is used to subtract two single bit binary numbers A and B. The difference and borrow are the two output states of the half subtractor.

Examples:

Input: A=0; B=1

Output: Difference: 1

             Borrow: 1

Explanation: According to logical expression Difference=A XOR B i.e 0 XOR 1 =1, Borrow=Ä€ AND B i.e 1 AND 1 =1

Input: A=1; B=1

Output: Difference: 0

              Borrow: 1

Logical Expression:

Difference = A XOR B
Borrow = Ā AND B

Logical Diagram:

Truth Table:

Approach:

  • We take two inputs A and B.
  • XOR operation on A and B gives the value of the Difference.
  • AND operation on Ä€ and B gives the value of Borrow.

Implementation:

Python3




# Python program to implement Half subtractor
 
# Function to print Difference and Borrow
def getResult(A, B):
 
    # Calculating value of Difference
    Difference = A ^ B
 
    # Calculating value of Borrow
    # calculating not of A
    A = not(A)
    Borrow = A & B
 
    # printing the values
    print("Difference:", Difference)
    print("Borrow:", Borrow)
 
 
# Driver code
# Inputs A ,B
A = 0
B = 1
 
# passing two inputs of halfadder
# as arguments to get result function
getResult(A, B)


Output:

Difference: 1
Borrow: 1

Method#2: List comprehension:

Algorithm:

  1. Assign values to A and B.
  2. Calculate the difference and borrow using XOR and NOT-AND operations, respectively.
  3. Store the results in the result list.
  4. Print the results.

Python3




A = 0
B = 1
#Using List comprehension
result = [(A ^ B), int(not(A) and B)]
# printing the values
print("Difference:", result[0])
print("Borrow:", result[1])
#This code is contributed by Jyothi Pinjala.


Output

Difference: 1
Borrow: 1

Time Complexity: O(1)
The time complexity of this code is constant, as it does not depend on the size of the input. It only performs a few operations to calculate the difference and borrow.
Auxiliary Space: O(1)
The space complexity of this code is also constant, as it only uses a fixed amount of memory to store the input variables and the result list, which contains two integers.

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS