Java Program to Convert Binary Number to Octal and vice-versa

To understand this example, you should have the knowledge of the following Java programming topics:


Example 1: Program to Convert Binary to Octal

In this program, we will first convert binary number to decimal. Then, the decimal number is converted to octal.

class Main {
  public static void main(String[] args) {
    long binary = 101001;
    int octal = convertBinarytoOctal(binary);
    System.out.println(binary + " in binary = " + octal + " in octal");
  }

  public static int convertBinarytoOctal(long binaryNumber) {
    int octalNumber = 0, decimalNumber = 0, i = 0;

    while (binaryNumber != 0) {
      decimalNumber += (binaryNumber % 10) * Math.pow(2, i);
      ++i;
      binaryNumber /= 10;
    }

    i = 1;

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

    return octalNumber;
  }
}

Output

101001 in binary = 51 in octal

This conversion takes place as:

Binary To Decimal
1 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 41

Decimal to Octal
8 | 41
8 | 5 -- 1
8 | 0 -- 5
(51)

Example 2: Program to Convert Octal to Binary

In this program, the octal number to decimal to decimal at first. Then, the decimal number is converted to binary number.

class Main {
  public static void main(String[] args) {
    int octal = 67;
    long binary = convertOctalToBinary(octal);
    System.out.println(octal + " in octal = " + binary + " in binary");
  }

  public static long convertOctalToBinary(int octalNumber) {
    int decimalNumber = 0, i = 0;
    long binaryNumber = 0;

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

    i = 1;

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

    return binaryNumber;
  }
}

Output

67 in octal = 110111 in binary

This conversion takes place as:

Octal To Decimal
6 * 81 + 7 * 80 = 55

Decimal to Binary
2 | 55
2 | 27 -- 1
2 | 13 -- 1
2 | 6  -- 1
2 | 3  -- 0
2 | 1  -- 1
2 | 0  -- 1
(110111)

Also Read:

Did you find this article helpful?

Your builder path starts here. Builders don't just know how to code, they create solutions that matter.

Escape tutorial hell and ship real projects.

Try Programiz PRO
  • Real-World Projects
  • On-Demand Learning
  • AI Mentor
  • Builder Community