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