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

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

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

### Program

```
num = input("Enter an octal number :")
OctalToDecimal(int(num))
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)
```

### Output

```
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.

### Program

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

### Output

```
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.

### Algorithm

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

### Program

```
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
```

### Output

```
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.

### Program

```
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 ))
```

### Output

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

Recommended read: