In this tutorial, we will write a program to convert decimal to octal in C. 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: 256
Output: 400
Let us go through a program for the Decimal to Octal Conversion in C.
1. Using While loop
Here, we will write a C program to convert decimal number to octal number using while loop. The program simply takes a decimal number as an input from the user and after calculation gives an octal output.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> int main() { int deciNum, octalNum = 0, rem, i = 1; printf("Enter a Decimal number: "); scanf("%d", &deciNum); while (deciNum != 0) { rem = deciNum % 8; octalNum = (rem *i) + octalNum; deciNum /= 8; i *= 10; } printf("Equivalent Octal Value: %d", octalNum); return 0; } |
Output:
Enter a Decimal number: 256
Equivalent Octal Value: 400
2. Using Recursion
Here, we will convert a decimal number to octal number using recursion in C. Learn more on Recursion and its use.
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 | #include <stdio.h> void conversionFunc(int); //prototype int main() { int deciNum; printf("Enter a Decimal number: "); scanf("%d", &deciNum); printf("Equivalent Octal Value: "); conversionFunc(deciNum); return 0; } //recursive function void conversionFunc(int dec) { if (dec > 0) { conversionFunc(dec / 8); printf("%d", dec % 8); } } |
Output: After the successful execution of the program, it will produce the same out as the above program.