Open In App

Java Program For Decimal to Octal Conversion

Given a decimal number N, convert N into an equivalent octal number i.e convert the number with base value 10 to base value 8. The decimal number system uses 10 digits from 0-9 and the octal number system uses 8 digits from 0-7 to represent any numeric value.

Illustration: 



Input : 33
Output: 41
Input : 10
Output: 12

Approach 1:

  1. Store the remainder when the number is divided by 8 in an array.
  2. Divide the number by 8 now
  3. Repeat the above two steps until the number is not equal to 0.
  4. Print the array in reverse order now.
     

Example of converting the decimal number 33 to an equivalent octal number. 

Example:






// Java program to convert a Decimal Number to Octal Number
 
// Importing input output classes
import java.io.*;
 
// Main class
class GFG {
 
    // Method
    // To convert decimal to octal
    static void decToOctal(int n)
    {
        // Creating an Integer array of
        // array to store octal number
        int[] octalNum = new int[100];
 
        // counter for octal number array
        int i = 0;
        while (n != 0) {
 
            // Storing remainder in octal array
            octalNum[i] = n % 8;
            n = n / 8;
            i++;
        }
 
        // Printing octal number array in reverse order
        for (int j = i - 1; j >= 0; j--)
            System.out.print(octalNum[j]);
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Custom input Integer number
        int n = 33;
 
        // Calling the above method to convert
        // Decimal to Octal number
        decToOctal(n);
    }
}

 
 

Output
41

Time Complexity: O(log N) 

Auxiliary Space: O(1) It is using constant space for variable and array OctalNum

Approach 2:

Example: 




// Java Program to Convert Decimal Number to Octal Number
 
// Importing input output classes
import java.io.*;
 
// Main class
class GFG {
 
    // Method 1
    // To calculate the octal value of the given
    // decimal number
    static void decimaltooctal(int deciNum)
    {
 
        // Initially declaring and initializing the
        // octal number with zero
        int octalNum = 0, countval = 1;
        int dNo = deciNum;
 
        // Condition check
        while (deciNum != 0) {
 
            // Decimals remainder is calculated
            int remainder = deciNum % 8;
 
            // Storing the octalvalue
            octalNum += remainder * countval;
 
            // Storing exponential value
            countval = countval * 10;
            deciNum /= 8;
        }
 
        // Print and display the octal number
        System.out.println(octalNum);
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Custom input decimal number
        int n = 33;
 
        // Calling the Method1 to convert above number
        // to Octal number system
        decimaltooctal(n);
    }
}

 
 

Output
41

Time Complexity: O(log N)

Auxiliary Space: O(1)


Article Tags :