Binary to Decimal Conversion in Java
Binary to Decimal Conversion
Binary to Decimal conversion is the process of converting a binary number (base-2) into its equivalent decimal number (base-10). Each binary digit represents a power of 2.
For example, the binary number 1010 is equal to decimal 10 because:
(1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰) = 8 + 0 + 2 + 0 = 10
We will explore three methods to convert a binary number to a decimal number using Java programming.
Method 1: Using Loop
import java.util.Scanner; public class Main { public static int binaryToDecimal(long binary) { int decimal = 0, i = 0; while (binary != 0) { int lastDigit = (int) (binary % 10); decimal += lastDigit * Math.pow(2, i); binary /= 10; i++; } return decimal; } }
Output:
Enter a binary number: 1010 Decimal equivalent (Loop): 10
Method 2: Using Recursion
public class Main { public static int binaryToDecimalRecursive(long n, int i) { if (n == 0) return 0; return (int)((n % 10) * Math.pow(2, i) + binaryToDecimalRecursive(n / 10, i + 1)); } }
Output:
Enter a binary number: 1010 Decimal equivalent (Recursion): 10
Method 3: Using Bitwise Operations
public class Main { public static int binaryToDecimalBitwise(int n) { int decimal = 0, base = 1; while (n > 0) { int lastDigit = n % 10; decimal += lastDigit * base; base *= 2; n /= 10; } return decimal; } }
Output:
Enter a binary number: 1010 Decimal equivalent (Bitwise): 10
Main Function
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter a binary number: "); long binary = scanner.nextLong(); System.out.println("Decimal equivalent (Loop): " + binaryToDecimal(binary)); System.out.println("Decimal equivalent (Recursion): " + binaryToDecimalRecursive(binary, 0)); System.out.println("Decimal equivalent (Bitwise): " + binaryToDecimalBitwise((int) binary)); scanner.close(); } }