Convert Binary to Decimal using Recursion in Java

This article shows you how to convert Binary to Decimal using recursion in Java. Recursion in java is a technique in which a method calls itself continuously. A method in java that calls itself is called a recursive method.

How to convert binary to decimal?

Binary to Decimal conversion is straightforward, look into the below diagram for conversion in steps:

binary to decimal conversion in java

Java Program to Convert Binary to Decimal

Here, we will see two java programs for binary-to-decimal conversion using recursion in Java.

  1. Binary to Decimal – if the binary number is in integer format
  2. Binary to Decimal – if the binary number is in string format

Binary to Decimal using Recursion – if the binary number is in integer format

BinaryToDecimalRecursion.java

package com.javacodepoint.conversion;

/**
 * Binary to Decimal conversion using Recursion.
 */
public class BinaryToDecimalRecursion {

	// recursive method for binary to decimal
	public static int binaryToDecimal(int binary) {

		// if binary number become 0
		if (binary == 0) {
			return 0;
		}

		return (binary % 10 + 2 * binaryToDecimal(binary / 10));
	}

	// main method to test
	public static void main(String[] args) {

		// Binary number is in integer format
		System.out.println("Decimal Number of 1001 is: " + binaryToDecimal(1001));
		System.out.println("Decimal Number of 1111 is: " + binaryToDecimal(1111));
		System.out.println("Decimal Number of 1100110 is: " + binaryToDecimal(1100110));
		System.out.println("Decimal Number of 1000000001 is: " + binaryToDecimal(1000000001));
	}

}

OUTPUT:

Decimal Number of 1001 is: 9
Decimal Number of 1111 is: 15
Decimal Number of 1100110 is: 102
Decimal Number of 1000000001 is: 513

Binary to Decimal using Recursion – if the binary number is in string format

BinaryToDecimalRecursion2.java

package com.javacodepoint.conversion;

/**
 * Binary to Decimal conversion using Recursion.
 */
public class BinaryToDecimalRecursion2 {

	// recursive method for binary to decimal
	public static int binaryToDecimal(String binary, int i) {

		int length = binary.length();

		// if we reached to last character
		if (i == length - 1) {
			return binary.charAt(i) - '0';
		}

		// add current term and recursion for
		// remaining terms
		return ((binary.charAt(i) - '0') << (length - i - 1)) + binaryToDecimal(binary, i + 1);
	}

	// main method
	public static void main(String[] args) {

		// Binary number is in string format
		System.out.println("Decimal Number of 101 is: " + binaryToDecimal("101", 0));
		System.out.println("Decimal Number of 1010 is: " + binaryToDecimal("1010", 0));
		System.out.println("Decimal Number of 1111000 is: " + binaryToDecimal("1111000", 0));
		System.out.println("Decimal Number of 1000000001 is: " + binaryToDecimal("1000000001", 0));
	}

}

OUTPUT:

Decimal Number of 101 is: 5
Decimal Number of 1010 is: 10
Decimal Number of 1111000 is: 120
Decimal Number of 1000000001 is: 513

There are multiple ways for Binary to Decimal conversion also explained in another article, visit Java Binary to decimal conversion Program Examples.

Java logical programs list


Java Basic Programs

Java Programs based on the Collection Framework

Leave a Reply

Your email address will not be published. Required fields are marked *