Python Program to Convert Octal Number to Decimal and vice-versa

2 min read

The octal numeral system, or oct for short, is the base-8 number system and uses the digits 0 to 7. The main characteristic of an Octal Numbering System is that there are only 8 distinct counting digits from 0 to 7 with each digit having a weight or value of just 8 starting from the least significant bit (LSB).

In the decimal number system, each digit represents the different power of 10 making them base-10 number system.

Problem definition

Create a python program to convert an octal number into a decimal number.

Algorithm for octal to decimal conversion

  1. Take an octal number as input.
  2. Multiply each digit of the octal number starting from the last with the powers of 8 respectively.
  3. Add all the multiplied digits.
  4. The total sum gives the decimal number.


num = input("Enter an octal number :")


def OctalToDecimal(num):

    decimal_value = 0
    base = 1

    while (num):
        last_digit = num % 10
        num = int(num / 10)
        decimal_value += last_digit * base
        base = base * 8
    print("The decimal value is :",decimal_value)


Enter an octal number :24
The decimal value is :20

In python, there is an alternate way to convert octal numbers into decimals using the int() method.


octal_num = input("Enter an octal number :")
decimal_value = int(octal_num,8)
print("The decimal value of {} is {}".format(octal_num,decimal_value))


Enter an octal number :24
The decimal value of 24 is 20

Problem definition

Create a python program to convert a decimal number into an octal number.


  1. Take a decimal number as input.
  2. Divide the input number by 8 and obtain its remainder and quotient.
  3. Repeat step 2 with the quotient obtained until the quotient becomes zero.
  4. The resultant is the octal value.


decimal = int(input("Enter a decimal number :"))

print("The octal equivalent is :",decimal_to_octal(decimal))

def decimal_to_octal(decimal):
    octal = 0
    i = 1
    while (decimal != 0):
        octal = octal + (decimal % 8) * i
        decimal = int(decimal / 8)
        i = i * 10
    return octal


Enter a decimal number :200
The octal equivalent is : 310

An alternate shorthand to convert a decimal number into octal is by using the oct() method.


decimal_number = int(input("Enter a decimal number :"))
octal_number = oct(decimal_number).replace("0o", "")
print("The octal value for {} is {}".format(decimal_number,octal_number ))


Enter a decimal number :200
The octal value for 200 is 310

Recommended read:


Latest Articles

Latest from djangocentral

Django 4.1 adds async-compatible interface to QuerySet

The much-awaited pull request for an async-compatible interface to Queryset just got merged into the main branch of Django.Pull Request - The Django core team has been progressively adding async suppor…
Read more →

3 min read

Making Django Admin Jazzy With django-jazzmin

Django admin is undoubtedly one of the most useful apps of Django. Over the years there has been very little change in the admin app as far as the UX is concerned and it's not a bad thing at all. Django admin was designed to provide a simple and minimali…
Read more →

4 min read