Skip to main content

Conversion from binary to octal in java

Java program for Conversion from binary to octal. Here mentioned other language solution.

/*
  Java program for
  Convert Binary number into Octal number
*/
public class Convert
{
    // Convert decimal number into octal
    public int octal(int number)
    {
        int result = 0, multiplier = 1;
        int remainder = 0;
        while (number != 0)
        {
            remainder = number % 8;
            result = (remainder * multiplier) + result;
            multiplier *= 10;
            number = number / 8;
        }
        return result;
    }
    public void binaryToOctal(String num)
    {
        if (num.length() == 0)
        {
            // When empty binary number
            return;
        }
        // Some useful variable
        boolean flag = false;
        int decimalNo = 0, counter = 0;
        int index = num.length() - 1;
        // We Assume that given binary number is valid
        // Here - indicates negative binary number
        // First convert binary to decimal
        // Example = 10111 => 23
        while (index >= 0)
        {
            if (num.charAt(index) == '1')
            {
                decimalNo += (1 << counter);
            }
            else if (num.charAt(index) != '0')
            {
                if (index == 0 && num.charAt(index) == '-')
                {
                    // When get negative number
                    flag = true;
                }
                else
                {
                    // Not a valid binary number
                    return;
                }
            }
            counter += 1;
            index -= 1;
        }
        // When given number is 
        int output = octal(decimalNo);
        if (flag == true)
        {
            output = -output;
        }
        // Display given number
        System.out.print("Binary : " + num);
        // Display result
        System.out.println(" Octal : " + output);
    }
    public static void main(String[] args)
    {
        Convert task = new Convert();
        // Test Case
        task.binaryToOctal("1111");
        task.binaryToOctal("10111");
        task.binaryToOctal("101011");
        task.binaryToOctal("11011");
        task.binaryToOctal("-1000110");
    }
}

Output

Binary : 1111 Octal : 17
Binary : 10111 Octal : 27
Binary : 101011 Octal : 53
Binary : 11011 Octal : 33
Binary : -1000110 Octal : -106




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment