# C Program to Convert Octal to Decimal

This is a C program to convert octal number to decimal.

Problem Description

This program takes a octal number as input and converts it into decimal number.

Problem Solution

1. Take a octal number as input.
2. Multiply each digits 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.

Program/Source Code

Here is source code of the C program to Convert Octal to Decimal. The C program is successfully compiled and run on a Linux system. The program output is also shown below.

1. /*
2.  * C Program to Convert Octal to Decimal
3.  */
4. #include <stdio.h>
5. #include <math.h>
6.
7. int main()
8. {
9.
10.     long int octal, decimal = 0;
11.     int i = 0;
12.
13.     printf("Enter any octal number: ");
14.     scanf("%ld", &octal);
15.     while (octal != 0)
16.     {
17.         decimal =  decimal +(octal % 10)* pow(8, i++);
18.         octal = octal / 10;
19.     }
20.     printf("Equivalent decimal value: %ld",decimal);
21.     return 0;
22. }
Program Explanation

1. Take the octal number as input and store it in the variable octal.
2. Initialize the variables decimal and i to zero.
3. Obtain the remainder and quotient of the octal number. Multiply the remainder by powers of 8 using function pow(8, i++), add this value to the variable decimal and store it in the variable decimal.
4. Override the variable octal with quotient.
5. Repeat the steps 3 and 4 with the quotient obtained until the quotient becomes zero.
6. Print the variable decimal as output.

Runtime Test Cases
Output:

Enter any octal number: 67
Equivalent decimal value: 55

Sanfoundry Global Education & Learning Series – 1000 C Programs.

Here’s the list of Best Books in C Programming, Data-Structures and Algorithms

If you wish to look at other example programs on Simple C Programs, go to Simple C Programs. If you wish to look at programming examples on all topics, go to C Programming Examples.

If you find any mistake above, kindly email to [email protected]