Добрый день!
Прошу помочь мне понять, как можно реализовать метод конвертации в десятичную систему. Пыталась применить .getNumericValue(значение ячейки массива), но программа всё равно возвращает индекс '1' в char, а не "настоящую" единицу.
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 "";
String binary = "";
while (decimalNumber !=0)
{
binary += + decimalNumber%2;
decimalNumber /= 2;
}
String result = "";
char[] array = binary.toCharArray();
for (int i = array.length-1; i >= 0; i--)
{
result += array[i];
}
return result;
}
public static int toDecimal(String binaryNumber) {
if (binaryNumber.equals(null)) return 0;
else if (binaryNumber.equals("")) return 0;
int decimal = 0;
char[] array = binaryNumber.toCharArray();
for (int i = 0; i < array.length; i++)
{
decimal += Character.getNumericValue(array[i]) * Math.pow(2, i);
}
return decimal;
}
}