/home/caleb/ASDV-Java/Semester 3/Assignments/MP3_Recursion_CalebFontenot/src/mp3_recursion_calebfontenot/BinaryToDecimal.java |
package mp3_recursion_calebfontenot;
import java.util.Scanner;
public class BinaryToDecimal {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
System.out.print("Enter a binary number: ");
String binary = input.nextLine();
System.out.println(binary + " in decimal is " + binaryToDecimal(binary));
}
}
public static int binaryToDecimal(String binaryString) {
return binaryToDecimal(binaryString, 0, binaryString.length(), 0);
}
public static int binaryToDecimal(String binaryString, int low, int high, int value) {
if (low == binaryString.length() - 1) {
return value;
}
if (binaryString.charAt(low) == '1') {
return binaryToDecimal(binaryString, ++low, --high, value += Math.pow(2, high));
} else {
return binaryToDecimal(binaryString, ++low, --high, value);
}
}
}