- Given a binary number, convert binary number to decimal number using java.
- We discuss various methods to convert binary number to decimal.
- Convert binary to decimal using Integer class
- Integer.parseInt method by specifying base 2.
- Iterative program to convert binary number to decimal number.
- Recursive program to convert binary number to decimal number.
- Convert binary to decimal using Integer class
Let us look into different methods to convert binary number to decimal number in java.
Method 1: Convert binary number to decimal in java (Integer.parseInt)
//binaryNumber = "1010"
private static int toDecimalUsingParseInt(String binaryNumber) {
//output: decimal = 10
return Integer.parseInt(binaryNumber, 2);
}
Method 2: Convert binary number to decimal in java (iterative method)
- Let us assume input binary number is “1010”.
- Binary to decimal conversion is :23 * 1 + 22 * 0 + 21 * 1 + 20 * 0 = 10
- Program to convert binary to decimal number is as follows:
//binaryNumber = "1010"
private static int iterative(String binaryNumber) {
int power = 0;
int decimal = 0;
for (int index = 0; index < binaryNumber.length(); index++) {
char chValue = binaryNumber.charAt(binaryNumber.length() - index - 1);
int digit = Character.getNumericValue(chValue);
decimal = decimal + digit * (int) Math.pow(2, power++);
}
return decimal;
} //output: decimal = 10
Method 3: Convert binary number to decimal in java (recursive method)
//binaryNumber = "1010"
private static int recursive(String binaryNumber) {
int decimal = 0;
int length = binaryNumber.length();
if (length > 0) {
String substring = binaryNumber.substring(1);
int digit = Character.getNumericValue(binaryNumber.charAt(0));
decimal = digit * (int) Math.pow(2, length - 1) + recursive(substring);
}
return decimal;
}//output: decimal = 10
The logical flow of recursive method for input binary string “1010” is shown in Fig 1.
Program: convert binary number to decimal (java, iterative & recursive)
package org.learn;
import java.util.Scanner;
public class BinaryToDecimal {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
System.out.printf("1. Enter binary string : ");
String binary = scanner.next();
int decimal = toDecimalUsingParseInt(binary);
System.out.printf("2. Binary to decimal - parseInt(%s,2) = %d ", binary, decimal);
decimal = iterative(binary);
System.out.printf("\n3. Binary to decimal - iterative(%s) = %d ", binary, decimal);
decimal = recursive(binary);
System.out.printf("\n4. Binary to decimal - recursive(%s) = %d ", binary, decimal);
}
}
private static int toDecimalUsingParseInt(String binaryNumber) {
return Integer.parseInt(binaryNumber, 2);
}
private static int iterative(String binaryNumber) {
int power = 0;
int decimal = 0;
for (int index = 0; index < binaryNumber.length(); index++) {
char chValue = binaryNumber.charAt(binaryNumber.length() - index - 1);
int digit = Character.getNumericValue(chValue);
decimal = decimal + digit * (int) Math.pow(2, power++);
}
return decimal;
}
private static int recursive(String binaryNumber) {
int decimal = 0;
int length = binaryNumber.length();
if (length > 0) {
String substring = binaryNumber.substring(1);
int digit = Character.getNumericValue(binaryNumber.charAt(0));
decimal = digit * (int) Math.pow(2, length - 1) + recursive(substring);
}
return decimal;
}
}
Output: convert binary number to decimal (java, iterative & recursive)
1. Enter binary string : 1010 2. Binary to decimal - parseInt(1010,2) = 10 3. Binary to decimal - iterative(1010) = 10 4. Binary to decimal - recursive(1010) = 10 1. Enter binary string : 11100110 2. Binary to decimal - parseInt(11100110,2) = 230 3. Binary to decimal - iterative(11100110) = 230 4. Binary to decimal - recursive(11100110) = 230