The task is to write code to convert a decimal to a binary number and vice versa. I've kind of finally written the 'toBinary' method that works but the 'toDecimal' one keeps making an error. I still can't see what I'm doing wrong.
package en.codegym.task.pro.task09.task0906;
/*
Binary converter
*/
public class Solution {
public static void main(String[] args) {
int decimalNumber = Integer.MAX_VALUE;
System.out.println("Decimal number " + decimalNumber +
" is equal to binary number " + toBinary(decimalNumber));
String binaryNumber = "1111111111111111111111111111111";
System.out.println("Binary number " + binaryNumber + " is equal to decimal number " + toDecimal(binaryNumber));
}
public static String toBinary(int decimalNumber) {
//write your code here
String binaryNumber = "";
if (decimalNumber <= 0) {
return binaryNumber;
}
while (decimalNumber != 0) {
binaryNumber = String.valueOf(decimalNumber%2) + binaryNumber;
decimalNumber = decimalNumber / 2;
}
return binaryNumber;
}
public static int toDecimal(String binaryNumber) {
//write your code here
if (binaryNumber == null || binaryNumber.isEmpty()) {
return 0;
}
int decimalNumber = 0;
for (int i = 0; i < binaryNumber.length(); i++) {
decimalNumber = (int) (decimalNumber + Integer.valueOf(binaryNumber.charAt(i)) * Math.pow(2, i));
}
return decimalNumber;
}
}