How to Convert Decimal to Binary Using Recursion in Python?



In this article, we will show you how to convert decimal to binary using recursion in python.

A decimal number is the most familiar number system to the general public. It is base 10 which has only 10 symbols − 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9. Whereas Binary number is the most familiar number system to digital systems, networking, and computer professionals. It is base 2 which has only 2 symbols: 0 and 1, these digits can be represented by off and on respectively.

When we convert a number from the decimal number system to the binary number system, we are using decimal to binary-conversion. The total number of digits used in the number system determines the base of all number systems. The binary number system, for example, has a base of two because it only uses two digits to represent a number. Similarly, the decimal number system has a base of ten because a number is represented by ten digits.

Using Recursion(First Logic)

Algorithm (Steps)

Following are the Algorithm/steps to be followed to perform the desired task −

  • Create a recursive function to getBinaryForm() using the def keyword to convert the decimal number passed to it as an argument into a binary form.

  • Use the if conditional statement to check whether the number passed is equal to 0 with the == operator.

  • Return 0 if the condition is true i.e, the decimal number passed is 0.

  • Else return the binary form of the decimal number passed to the function using recursive logic( get the last bit of the number using the modulus operator(%) and divide the number by 2(half) and multiply it with 10 and Cal the recursive function again with this value-added).

  • Create a variable to store the input number.

  • Call the getBinaryForm() function by passing the input decimal number as an argument and print the resultant binary equivalent of the decimal number returned by the function.

Example

The following program returns the binary form of a decimal number using recursion −

# creating a function to convert decimal number passed to it # as an argument into a binary form def getBinaryForm(decimalnum): # checking whether the number passed is equal to 0 if decimalnum == 0: # returning 0 if the number passed is 0 return 0 else: # Else getting the last bit of the number and dividing the number by 2(half) and multiplying it with 10 # Calling the recursive function again with this value-added return (decimalnum % 2 + 10 * getBinaryForm(int(decimalnum // 2))) # input decimal number decimalnum = 5 print("The binary equivalent of",decimalnum,"is:") # calling the getBinaryForm() function by passing the decimal number as an argument print(getBinaryForm(decimalnum))

Output

On executing, the above program will generate the following output &minnus;

The binary equivalent of 5 is:
101

Using Recursion(Second Logic)

Algorithm (Steps)

Following are the Algorithm/steps to be followed to perform the desired task −

  • Create a recursive function to getBinaryForm() using the def keyword to convert the decimal number passed to it as an argument into a binary form

  • Use the if conditional statement to check whether the number passed is equal to 0 with the == operator.

  • Return 0 if the condition is true i.e, the decimal number passed is 0.

  • Call the function recursively again by passing the given number by half and store this result in a variable.

  • Get the last bit of the given decimal number using the modulus operator(%) and add 10* to the above result.

  • Create a variable to store the input number.

  • Call the getBinaryForm() function by passing the input decimal number as an argument and print the resultant binary equivalent of the decimal number returned by the function.

Example

The following program returns the binary form of a decimal number using recursion −

# creating a function to convert decimal number passed to it # as an argument into a binary form def getBinaryForm(decimalnum): # checking whether the number passed is equal to 0 if decimalnum == 0: # returning 0 if the number passed is 0 return 0 # Call the function recursively again by passing the given number by half result = getBinaryForm(decimalnum // 2) # Getting the last bit and multiply the result with 10 return decimalnum % 2 + 10 * result # input decimal number decimalnum = 500 print("The binary equivalent of",decimalnum,"is:") # calling the getBinaryForm() function by passing # the decimal number as an argument print(getBinaryForm(decimalnum))

Output

On executing, the above program will generate the following output −

The binary equivalent of 500 is:
111110100

Conclusion

We learned two different methods for calculating the binary format of a given decimal number using recursion in this article. We learned how to invoke the recursive function by passing it some value (result). We also learned how to divide a number by half to get only the integer number.


Advertisements