Python Program to convert Decimal to Octal number

In this tutorial, we will learn to write a Python program to convert a given decimal number to an octal number in Python. The octal numeral system is a base-8 system that uses the digits 0 through 7. Whereas the decimal numeral system is a base-10 system that uses the digits 0 through 9. Converting a decimal number to an octal number involves dividing the decimal number by 8 and repeatedly taking the remainder until the quotient is 0. The remainders, read in reverse order, make up the octal equivalent of the decimal number.

Here are the steps to convert decimal to octal:

  1. Take the decimal number as input from the user.
  2. Divide the decimal number by 8 and record the remainder.
  3. Repeat step 2 with the quotient until the quotient is 0.
  4. Read the remainders in reverse order to get the octal equivalent.

Here is an example to understand the steps :

  1. 157 ÷ 8 = 19 remainder 5
  2. 19 ÷ 8 = 2 remainder 3
  3. 2 ÷ 8 = 0 remainder 2

The remainders are 2, 3, and 5 in reverse order, so the octal equivalent of decimal 157 is 235.

Decimal to Octal number conversion in Python

def decimal_to_octal(decimal):
    if decimal == 0:
        return ""
    quotient = decimal // 8
    remainder = decimal % 8
    return decimal_to_octal(quotient) + str(remainder)
    
decimal = int(input("Please Enter a decimal number: "))
octal = decimal_to_octal(decimal)
print("Octal number is ", octal, " for ", decimal)

Output

Please Enter a decimal number: 157
Octal number is  235  for  157