"Answer on Question#39094 - Programming, Java"
package convertorbindec;
import java.util.Scanner;
/**
*
* @author Who you are
* @version 1.01 Program converts number from Base2 to Base10
*/
public class ConvertorBinDec {
static final int BASE2 = 2; //constant for base2 system
static final int BASE10 = 10; //constant for base10 system
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Input number in base2: ");
int number = input.nextInt();
//calculate converted number
int numberConverted = convertFromBinToDec(number);
//output
System.out.println("Base 2: " + number + " Base 10: " + numberConverted);
System.out.print("Input number in base10: ");
number = input.nextInt();
//calculate converted number
numberConverted = convertFromDecToBin(number);
//output
System.out.println("Base 10: " + number + " Base 2: " + numberConverted);
}
/**
*
* @param number number in Base2
* @return number in Base10
*/
public static int convertFromBinToDec(int number) {
String numStr = Integer.toString(number);
int length = numStr.length();
//calculate how many digits number contains
int sum = 0;
for (int i = 0; i < length; i++) {
//convert from Base2 to Base10
sum += (number % BASE10) * Math.pow(BASE2, i);
number /= BASE10;
}
return sum;
}
public static int convertFromDecToBin(int number) {
StringBuilder convertedNumberAsString = new StringBuilder(""); //create empty String for collecting digits
while (number > 0) {
//convert from Base10 to Base2
int digit = number % BASE2;
convertedNumberAsString.append(digit);
number = number / BASE2;
}
convertedNumberAsString = convertedNumberAsString.reverse();
//reverse digits in String after conversion
int convertedNumber = Integer.parseInt(convertedNumberAsString.toString());
//parse to int
return convertedNumber;
}
}