Convert Octal to Binary in Java

Exercise:

Write a Java Program to convert octal number to binary number.

Click Here to View the Solution!
public class OctalToBinary {
  
     public static void main(String[] args) {
         int octal = 89;
         long binary = convertOctalToBinary(octal);
         System.out.printf("%d in octal = %d in binary", octal, 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;
     }
 } 
Click Here to View the Output!
89 in octal = 1001001 in binary
Click Here to View the Explanation!
  • This program deals with finding out Binary equivalent to an Octal number as depicted by convertOctalToBinary() function.
  • It has two segments, where first segment calculates decimal equivalent to the octal number ‘89’.
  • During each iteration of the first ‘while’ condition, the remainder for the given octal number is calculated to the base ‘10’ and is then multiplied with exponential value of (80 = 1). The resultant value (9 * 80 = 9) is added to ‘decimalNumber’.
  • In the next pass ‘i’ becomes ‘1’, and is multiplied by the ‘8’ (89 / 10 = 8) as the data type is ‘int’). Now (8 * 81 = 64) value is added to the previous value ‘9’ and becomes ’64 + 9 = 73).
  • This value ‘73’ is decimal equivalent to ‘89’, and will be converted into binary form by the second ‘while’ condition.
  • Here the remainder for the decimal number is calculated to the base ‘2’, and is then multiplied by ‘i’ which is now equal to ‘1’.
  • As usual the resultant product value is added to ‘binaryNumber’. (73 % 2 = 1)  * 1
  • After the execution of this loop calculated binary value ‘1001001’ of the given octal number ‘89’, the program terminates.