Наставники, посмотрите пожалуйста метод toDecimal. Что делаю не так ??
chatAt(i) возводится с помощью Math.pow (2,i). Но итоговое конвертирование не верное.
package com.javarush.task.pro.task09.task0906;
import java.util.regex.Pattern;
/*
Двоичный конвертер
*/
public class Solution {
public static void main(String[] args) {
int decimalNumber = Integer.MAX_VALUE;
System.out.println("Десятичное число " + decimalNumber + " равно двоичному числу " + toBinary(decimalNumber));
String binaryNumber = "1111111111111111111111111111111";
System.out.println("Двоичное число " + binaryNumber + " равно десятичному числу " + toDecimal(binaryNumber));
}
public static String toBinary(int decimalNumber) {
// if (decimalNumber <=0){
// return System.out.println("");
// }
StringBuilder sb = new StringBuilder();
while (decimalNumber!=0)
{
sb.append(decimalNumber%2); //dobl = (decimalNumber%2)+dobl *(int)Math.pow(10,i);
decimalNumber = decimalNumber/2;
}
//напишите тут ваш код
return sb.reverse().toString();
}
public static int toDecimal(String binaryNumber) {
int tenth = 0;
for (int i = 0; i<binaryNumber.length(); i++)
{
tenth = tenth + binaryNumber.charAt(i) * (int)Math.pow(2,i);
i++;
}
//напишите тут ваш код
return tenth;
}
}