C Program to Convert Decimal Number to Octal Number using Function

  • Write a C program to convert a decimal number to octal number.
  • Write a C program to convert a octal number to decimal number.

Decimal number system is a base 10 number system using digits for 0 to 9 whereas octal number system is base 8 and using digits from 0 to 7. Given a decimal number as input from user we have to print the octal equivalent of input decimal number.

For Example

100 in Decimal is equivalent to 144 in Octal number system.

Algorithm to convert Decimal to Octal number

  • Divide the input decimal number by 8 and store the remainder.
  • Store the quotient back to the input number variable.
  • Repeat this process till quotient becomes zero.
  • Equivalent octal number will be the remainders in above process in reverse order.
For Example

Suppose input decimal number is 525
Step 1. 525/8 , Remainder = 5, Quotient = 65
Step 2. 65/8 , Remainder = 1, Quotient = 8
Step 3. 8/8 , Remainder = 0, Quotient = 1
Step 4. 1/8 , Remainder = 1, Quotient = 0
Now, the Octal equivalent of 525 is the remainders in reverse order : 1015

C program to convert a decimal number to octal number

C Program to Convert Decimal Number to Octal Number using Function

/* 
* C program to convert decimal numbers to octal numbers
*/
 
#include <stdio.h>
#include <conio.h>
 
long decimalToOctal(long n);
int main() {
    long decimal;
    printf("Enter a decimal number\n");
    scanf("%ld", &decimal);
    printf("Octal number of %ld is %ld", decimal, decimalToOctal(decimal));
     
 getch();
    return 0;
}
 
/* Function to convert a decinal number to octal number */
long decimalToOctal(long n) {
    int remainder; 
 long octal = 0, i = 1;
  
    while(n != 0) {
        remainder = n%8;
        n = n/8;
        octal = octal + (remainder*i);
        i = i*10;
    }
    return octal;
}

Program Output

Enter a decimal number
1234
Octal number of 1234 is 2322

C program to convert a octal number to decimal number

C program to convert a octal number to decimal number

/* 
* C program to convert octal numbers to decimal numbers
*/
 
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
long octalToDecimal(long n);
int main() {
    long octal;
    printf("Enter an octal number\n");
    scanf("%ld", &octal);
    printf("Decimal number of %ld(Octal) is %ld", octal, octalToDecimal(octal));
     
 getch();
    return 0;
}
 
/* Function to convert a octal number to decimal number */
long octalToDecimal(long n) {
 int remainder; 
    long decimal = 0, i=0;
    while(n != 0) {
        remainder = n%10;
        n = n/10;
        decimal = decimal + (remainder*pow(8,i));
        ++i;
    }
    return decimal;
}

Program Output

Enter an octal number
45132
Decimal number of 45132(Octal) is 19034