Algorithm


 

Octal to Decimal Conversion Algorithm:

  1. Input:

    • Accept an octal number as input.
  2. Initialize Variables:

    • Initialize a variable decimal to 0.
    • Initialize a variable base to 1.
  3. Convert:

    • Starting from the rightmost digit, multiply each digit of the octal number by the corresponding power of 8 and add it to the decimal variable.
    • Update the base by multiplying it by 8 for each digit.
  4. Output:

    • The final value of decimal is the equivalent decimal representation of the given octal number.

Decimal to Octal Conversion Algorithm:

  1. Input:

    • Accept a decimal number as input.
  2. Initialize Variables:

    • Initialize an array to store the octal digits.
    • Initialize a variable index to 0.
  3. Convert:

    • Divide the decimal number by 8, store the remainder as the current octal digit, and update the decimal number with the quotient.
    • Repeat the above step until the decimal number becomes 0.
    • Store each octal digit in the array.
  4. Output:

    • The octal representation is obtained by reading the array in reverse order.

Code Examples

#1 Code Example- C Programing to Convert Decimal to Octal

Code - C Programming

#include <stdio.h>
#include <math.h>

// function prototype
int convertDecimalToOctal(int decimalNumber);

int main() {

    int decimalNumber;

    printf("Enter a decimal number: ");
    scanf("%d", &decimalNumber);

    printf("%d in decimal = %d in octal", decimalNumber, convertDecimalToOctal(decimalNumber));

    return 0;
}

// function to convert decimalNumber to octal
int convertDecimalToOctal(int decimalNumber) {
    int octalNumber = 0, i = 1;

    while (decimalNumber != 0) {
        octalNumber += (decimalNumber % 8) * i;
        decimalNumber /= 8;
        i *= 10;
    }

    return octalNumber;
}
Copy The Code & Try With Live Editor

Output

x
+
cmd
Enter a decimal number: 78
78 in decimal = 116 in octal

#2 Code Example-C Programing to Convert Octal to Decimal

Code - C Programming

#include <stdio.h>
#include <math.h>

// function prototype
long long convertOctalToDecimal(int octalNumber);

int main() {

    int octalNumber;

    printf("Enter an octal number: ");
    scanf("%d", &octalNumber);

    printf("%d in octal = %lld in decimal", octalNumber, convertOctalToDecimal(octalNumber));

    return 0;
}

// function to convert octalNumber to decimal
long long convertOctalToDecimal(int octalNumber) {
    int decimalNumber = 0, i = 0;

    while(octalNumber != 0) {
        decimalNumber += (octalNumber%10) * pow(8,i);
        ++i;
        octalNumber/=10;
    }

    i = 1;

    return decimalNumber;
}

Copy The Code & Try With Live Editor

Output

x
+
cmd
Enter an octal number: 116
116 in octal = 78 in decimal

#3 Code Example- C Programing Check for Octal Number and Convert it to Decimal

Code - C Programming

#include <stdio.h>
#include <math.h>

// function prototypes
int checkOctal(int);
long long convertOctalToDecimal(int);

int main() {
    
    int octalNumber;
    int condition;

    // repeat loop as long as user
    // gives a non-octal number     
    do {
        printf("Enter an octal number: ");
        scanf("%d", &octalNumber);

        // check if number is octal
        condition = checkOctal(octalNumber);
        
        if (!condition) {
            printf("%d is not an octal number!\n", octalNumber);
        }
    } while (condition == 0);
    
    printf("%d in octal = %lld in decimal", octalNumber, convertOctalToDecimal(octalNumber));

    return 0;
}

// function to check octal number
int checkOctal(int octalNumber) {
    int remainder;
    
    // check each digit of input number
    while(octalNumber != 0) {
        remainder = octalNumber % 10;

        // return 0 if a digit is 8 or 9
        if (remainder >= 8) {
            return 0;
        }
        
        octalNumber/= 10;
    }
    
    // return 1 if number is octal
    return 1;
}

// function to convert octalNumber to decimal
long long convertOctalToDecimal(int octalNumber) {
    int decimalNumber = 0, i = 0;

    while(octalNumber != 0) {
        decimalNumber += (octalNumber%10) * pow(8,i);
        ++i;
        octalNumber/=10;
    }

    i = 1;

    return decimalNumber;
}
Copy The Code & Try With Live Editor

Output

x
+
cmd
Enter an octal number: 96
96 is not an octal number!
Enter an octal number: 25
25 in octal = 21 in decimal
Advertisements

Demonstration


C Programing to Convert Octal Number to Decimal and vice-versa-DevsEnv

Next
Appending into a File in C Programming