In this tutorial, we will write a program to convert octal to decimal in C using whille loop. Before that, you must have knowledge of the following topics in C.

**Octal number**

The octal numbers are the numbers with base 8 and use the digits 0 to 7. Example: 8 in decimal is represented as 10 in octal, 25 as 31, and so on.

**Decimal Number**

These are the numbers with a base of 10, which ranges from 0 to 9. These numbers are formed with the combination of 0 to 9 digits such as 24, 345, etc.

**Example:**

`Input: 400`

Output: 256

Let us go through a program for the Octal to Decimal Conversion in C. we will perform two different C programs.

- Basic program
- Using user-defined function

**C Program to Convert Octal to Decimal**

**Source code:**

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> #include <math.h> int main() { int octalNum, decimalNum = 0, i = 0; printf("Enter an octal number: "); scanf("%d", &octalNum); while (octalNum != 0) { decimalNum = decimalNum + (octalNum % 10) *pow(8, i++); octalNum = octalNum / 10; } printf("Equivalent Decimal Value: %d", decimalNum); return 0; } |

**Output:**

`Enter an octal number: 400`

Equivalent Decimal Value: 256

**Using Function**

**Source code:** convert octal to decimal using function in C.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <stdio.h> #include <math.h> int conversionFunc(int oct) { int i = 0, decimalNum = 0, rem; while (oct > 0) { rem = oct % 10; oct /= 10; decimalNum = decimalNum + rem* pow(8, i); ++i; } return decimalNum; } int main() { int octNum; printf("Enter an Octal number: "); scanf("%d", &octNum); printf("Equivalent Decimal Value: %d", conversionFunc(octNum)); return 0; } |

**Output:** After the successful execution of the program, it will produce the same out as the above program.