Python Program to Toggle First and Last Bits of a Number

The task is to toggle the first bit and last bit of a given number in python.

Toggling: 

A toggling operation changes the value of a bit from 0 to 1 and from 1 to 0.

Examples:

Example1:

Input:

Given Number =12

Output:

The Number after toggling the first bit and last bit of a given number{ 12 } =  5

Example2:

Input:

Given Number =4

Output:

The Number after toggling the first bit and last bit of a given number{ 4 } =  1

Program to Toggle First and Last Bits of a Number in Python

Below are the ways to toggle the first bit and last bit of a given number in python:

Method #1: Using Right Shift (>>)Operator (Static Input)

Approach:

  • Give the number as static input and store it in a variable.
  • Pass the given number as an argument to the takeLastandFirstsetbits function.
  • Create a  function to say takeLastandFirstsetbits which takes the given number as an argument.
  • Apply the or(|) operator to the given number and given_numb >> 1(Right Shift) and store it in the same variable.
  • Apply the or(|) operator to the given number and given_numb >> 2(Right Shift) and store it in the same variable.
  • Apply the or(|) operator to the given number and given_numb >> 4(Right Shift) and store it in the same variable.
  • Apply the or(|) operator to the given number and given_numb >> 8(Right Shift) and store it in the same variable.
  • Apply the or(|) operator to the given number and given_numb >> 16(Right Shift) and store it in the same variable.
  • Add 1 to the given number and right shift the result by 1 and store it in another variable.
  • Return the above result +1.
  • Pass the given number as an argument to the toggleFirstandLastbits function.
  • Create a  function to say toggleFirstandLastbits which takes the given number as an argument and returns the number after toggling the first and last bits of a given number.
  • Check if the given number is equal to 1 using the if conditional statement.
  • If the statement is true, then return 0.
  • Return the Xor result of the given number and takeLastandFirstsetbits(gven_numb).
  • Print the number after toggling the first bit and last bit of a given number.
  • The Exit of the Program.

Below is the implementation:

# Create a  function to say takeLastandFirstsetbits which takes the given number as an
# argument.


def takeLastandFirstsetbits(gven_numb):
    # Apply the or(|) operator to the given number and given_numb >> 1(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 1
    # Apply the or(|) operator to the given number and given_numb >> 2(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 2
    # Apply the or(|) operator to the given number and given_numb >> 4(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 4
    # Apply the or(|) operator to the given number and given_numb >> 8(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 8
    # Apply the or(|) operator to the given number and given_numb >> 16(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 16
    # Add 1 to the given number and right shift the result by 1 and store it in another
    # variable.
    p = (gven_numb + 1) >> 1
    # Return the above result +1.
    return (p + 1)

# Create a  function to say toggleFirstandLastbits which takes the given number as an
# argument and returns the number after toggling the first and last bits of a given number.


def toggleFirstandLastbits(gven_numb):
  # Check if the given number is equal to 1 using the if conditional statement.
    if (gven_numb == 1):
      # If the statement is true, then return 0.
        return 0
    # Return the Xor result of the given number and takeLastandFirstsetbits(gven_numb).
    return gven_numb ^ takeLastandFirstsetbits(gven_numb)


# Give the number as static input and store it in a variable.
# Pass the given number as an argument to the takeLastandFirstsetbits function.
# Pass the given number as an argument to the toggleFirstandLastbits function.
gven_numb = 12
# Print the number after toggling the first bit and last bit of a given number.
print("The Number after toggling the first bit and last bit of a given number{", gven_numb, "} = ", toggleFirstandLastbits(
    gven_numb))

Output:

The Number after toggling the first bit and last bit of a given number{ 12 } =  5

Method #2: Using Right Shift (>>)Operator (User Input)

Approach:

  • Give the number as user input using the int(input()) function and store it in a variable.
  • Pass the given number as an argument to the takeLastandFirstsetbits function.
  • Create a  function to say takeLastandFirstsetbits which takes the given number as an argument.
  • Apply the or(|) operator to the given number and given_numb >> 1(Right Shift) and store it in the same variable.
  • Apply the or(|) operator to the given number and given_numb >> 2(Right Shift) and store it in the same variable.
  • Apply the or(|) operator to the given number and given_numb >> 4(Right Shift) and store it in the same variable.
  • Apply the or(|) operator to the given number and given_numb >> 8(Right Shift) and store it in the same variable.
  • Apply the or(|) operator to the given number and given_numb >> 16(Right Shift) and store it in the same variable.
  • Add 1 to the given number and right shift the result by 1 and store it in another variable.
  • Return the above result +1.
  • Pass the given number as an argument to the toggleFirstandLastbits function.
  • Create a  function to say toggleFirstandLastbits which takes the given number as an argument and returns the number after toggling the first and last bits of a given number.
  • Check if the given number is equal to 1 using the if conditional statement.
  • If the statement is true, then return 0.
  • Return the Xor result of the given number and takeLastandFirstsetbits(gven_numb).
  • Print the number after toggling the first bit and last bit of a given number.
  • The Exit of the Program.

Below is the implementation:

# Create a  function to say takeLastandFirstsetbits which takes the given number as an
# argument.


def takeLastandFirstsetbits(gven_numb):
    # Apply the or(|) operator to the given number and given_numb >> 1(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 1
    # Apply the or(|) operator to the given number and given_numb >> 2(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 2
    # Apply the or(|) operator to the given number and given_numb >> 4(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 4
    # Apply the or(|) operator to the given number and given_numb >> 8(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 8
    # Apply the or(|) operator to the given number and given_numb >> 16(Right Shift) and
    # store it in the same variable.
    gven_numb = gven_numb | gven_numb >> 16
    # Add 1 to the given number and right shift the result by 1 and store it in another
    # variable.
    p = (gven_numb + 1) >> 1
    # Return the above result +1.
    return (p + 1)

# Create a  function to say toggleFirstandLastbits which takes the given number as an
# argument and returns the number after toggling the first and last bits of a given number.


def toggleFirstandLastbits(gven_numb):
  # Check if the given number is equal to 1 using the if conditional statement.
    if (gven_numb == 1):
      # If the statement is true, then return 0.
        return 0
    # Return the Xor result of the given number and takeLastandFirstsetbits(gven_numb).
    return gven_numb ^ takeLastandFirstsetbits(gven_numb)


# Give the number as user input using the int(input()) function and store it in a variable.
gven_numb = int(input("Enter some random number = "))
# Pass the given number as an argument to the takeLastandFirstsetbits function.
# Pass the given number as an argument to the toggleFirstandLastbits function.
# Print the number after toggling the first bit and last bit of a given number.
print("The Number after toggling the first bit and last bit of a given number{", gven_numb, "} = ", toggleFirstandLastbits(
    gven_numb))

Output:

Enter some random number = 4
The Number after toggling the first bit and last bit of a given number{ 4 } = 1

 

Leave a Comment