Python Program to Clear nth Bit of a Number

In the previous article, we have discussed Python Program to Count Number of Uppercase Letters in a String using Recursion

Given a number, bit position and the task is to get the number after clearing the bit at the given bit position for a given number.

In simple words, it converts all 1’s to 0

let number=7  (111)

Bit position that you want to clear =1

It converts the 1 at index 1 to 0

Number after clearing = 5 (101)

Bitwise & Operator:

If both bits are 1, sets each bit to 1.

Complement operator(~):

The ones’ complement operator flips the bits of an integer, transforming one into zero and zero into one.

Examples:

Example1:

Input:

Given Number = 60 
Bit position(in range 0-31)= 3

Output:

The Number after clearing the bit at the given position{ 3 } for a given number{ 60 } = 52

Example2:

Input:

Given Number = 7 
Bit position(in range 0-31)= 1

Output:

The Number after clearing the bit at the given position{ 1 } for a given number{ 7 } = 5

Program to Clear nth Bit of a Number in Python

Below are the ways to get the number after clearing the bit at the given bit position for a given number:

Method #1: Using Bitwise &(and) Operator (Static Input)

Approach:

  • Give the number as static input and store it in a variable.
  • Give the bit position as static input and store it in another variable.
  • Apply the left shift operator to 1 and the above-given bit position and store it in another variable.
  • Apply the complement operator (which converts 0 to 1 and vice-versa) to the above result and store it in another variable.
  • Apply bitwise & operation for the given number and the above result and store it in another variable say rslt_numb.
  • Print the number after clearing the bit at the given position for a given number.
  • The Exit of the Program.

Note: ‘0’ indexing .Give the bit position in range(0-31).

Below is the implementation:

# Give the number as static input and store it in a variable.
gvn_numb = 60
# Give the bit position as static input and store it in another variable.
bitpositin = 3
# Apply the left shift operator to 1 and the above-given bit position and
# store it in another variable.
numbr_bit = (1 << bitpositin)
# Apply the complement operator (which converts 0 to 1 and vice-versa) to the above result
# and store it in another variable.
complemt = (~numbr_bit)
# Apply bitwise & operation for the given number and the above result and store it in
# another variable say rslt_numb.
rslt_numb = gvn_numb & complemt
# Print the number after clearing the bit at the given position for a given number.
print("The Number after clearing the bit at the given position{",
      bitpositin, "} for a given number{", gvn_numb, "} =", rslt_numb)

Output:

The Number after clearing the bit at the given position{ 3 } for a given number{ 60 } = 52

Method #2: Using Bitwise &(and) Operator (User Input)

Approach:

  • Give the number as user input using the int(input()) function and store it in a variable.
  • Give the bit position as user input using the int(input()) function and store it in another variable.
  • Apply the left shift operator to 1 and the above-given bit position and store it in another variable.
  • Apply the complement operator (which converts 0 to 1 and vice-versa) to the above result and store it in another variable.
  • Apply bitwise & operation for the given number and the above result and store it in another variable say rslt_numb.
  • Print the number after clearing the bit at the given position for a given number.
  • The Exit of the Program.

Below is the implementation:

# Give the number as user input using the int(input()) function and 
# store it in a variable.
gvn_numb = int(input("Enter some random number = "))
# Give the bit position as user input using the int(input()) function 
# and store it in another variable.
bitpositin = int(input("Enter some random number = "))
# Apply the left shift operator to 1 and the above-given bit position and
# store it in another variable.
numbr_bit = (1 << bitpositin)
# Apply the complement operator (which converts 0 to 1 and vice-versa) to the above result
# and store it in another variable.
complemt = (~numbr_bit)
# Apply bitwise & operation for the given number and the above result and store it in
# another variable say rslt_numb.
rslt_numb = gvn_numb & complemt
# Print the number after clearing the bit at the given position for a given number.
print("The Number after clearing the bit at the given position{",
      bitpositin, "} for a given number{", gvn_numb, "} =", rslt_numb)

Output:

Enter some random number = 7
Enter some random number = 1
The Number after clearing the bit at the given position{ 1 } for a given number{ 7 } = 5

Practice Python Program Examples to master coding skills and learn the fundamental concepts in the dynamic programming language Python.